Advertisement
BRIGADA_9301

Untitled

Nov 22nd, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #include <string.h>
  4. #include <Windows.h>
  5. #include <conio.h>
  6.  
  7. const UCHAR N_MAX_SYMBOLS = 9, N_MAX_WORDS = 50;
  8.  
  9. UCHAR is_palindrome(char* str);
  10. UCHAR is_equal(char* str, char* last_str);
  11.  
  12. int main()
  13. {
  14. setlocale(LC_CTYPE, "Russian");
  15.  
  16. char word_sequence[N_MAX_WORDS][N_MAX_SYMBOLS], upd_word_sequence[N_MAX_WORDS][N_MAX_SYMBOLS], cnt_symbol = -1;
  17. UCHAR cnt_word = 0, upd_cnt_word = 1, temp = '\0';
  18.  
  19. printf_s("Введите последовательность слов: \n");
  20. do
  21. {
  22. cnt_symbol++;
  23. scanf_s("%c", &temp);
  24.  
  25. if (temp == ' ' || temp == '.')
  26. {
  27. word_sequence[cnt_word][cnt_symbol] = '\0';
  28. cnt_symbol = -1;
  29. cnt_word++;
  30. }
  31. else
  32. word_sequence[cnt_word][cnt_symbol] = temp;
  33.  
  34. } while (temp != '.');
  35. word_sequence[cnt_word][0] = '\0';
  36.  
  37. for (UCHAR i = 0; i < cnt_word; i++)
  38. if (!is_equal(word_sequence[i], word_sequence[cnt_word - 1]) && is_palindrome(word_sequence[i]))
  39. {
  40. strcpy_s(upd_word_sequence[upd_cnt_word], word_sequence[i]);
  41. upd_cnt_word++;
  42. }
  43. upd_cnt_word--;
  44.  
  45. printf_s("Преобразованная последовательность: \n");
  46. for (unsigned char i = 0; i < upd_cnt_word - 1; i++)
  47. printf_s("%s ", upd_word_sequence[i]);
  48. if (upd_cnt_word > 0)
  49. printf_s("%s.", upd_word_sequence[upd_cnt_word]);
  50. else
  51. printf_s("Преобразованная последовательность пуста!");
  52.  
  53. _getch();
  54. return 0;
  55. }
  56.  
  57. UCHAR is_palindrome(char* str)
  58. {
  59.  
  60. for (unsigned char i = 0; i < strlen(str) / 2; i++)
  61. {
  62. if (str[i] != str[strlen(str) - i - 1])
  63. return 0;
  64. }
  65. return 1;
  66. }
  67.  
  68. UCHAR is_equal(char* str, char* last_str)
  69. {
  70. if (strlen(str) == strlen(last_str))
  71. {
  72. for (unsigned char i = 0; i < strlen(str); i++)
  73. if (str[i] != last_str[i])
  74. return 0;
  75. }
  76. else return 0;
  77.  
  78. return 1;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement