Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <locale.h>
- #include <string.h>
- #include <Windows.h>
- #include <conio.h>
- const UCHAR N_MAX_SYMBOLS = 9, N_MAX_WORDS = 50;
- UCHAR is_palindrome(char* str);
- UCHAR is_equal(char* str, char* last_str);
- int main()
- {
- setlocale(LC_CTYPE, "Russian");
- char word_sequence[N_MAX_WORDS][N_MAX_SYMBOLS], upd_word_sequence[N_MAX_WORDS][N_MAX_SYMBOLS], cnt_symbol = -1;
- UCHAR cnt_word = 0, upd_cnt_word = 1, temp = '\0';
- printf_s("Введите последовательность слов: \n");
- do
- {
- cnt_symbol++;
- scanf_s("%c", &temp);
- if (temp == ' ' || temp == '.')
- {
- word_sequence[cnt_word][cnt_symbol] = '\0';
- cnt_symbol = -1;
- cnt_word++;
- }
- else
- word_sequence[cnt_word][cnt_symbol] = temp;
- } while (temp != '.');
- word_sequence[cnt_word][0] = '\0';
- for (UCHAR i = 0; i < cnt_word; i++)
- if (!is_equal(word_sequence[i], word_sequence[cnt_word - 1]) && is_palindrome(word_sequence[i]))
- {
- strcpy_s(upd_word_sequence[upd_cnt_word], word_sequence[i]);
- upd_cnt_word++;
- }
- upd_cnt_word--;
- printf_s("Преобразованная последовательность: \n");
- for (unsigned char i = 0; i < upd_cnt_word - 1; i++)
- printf_s("%s ", upd_word_sequence[i]);
- if (upd_cnt_word > 0)
- printf_s("%s.", upd_word_sequence[upd_cnt_word]);
- else
- printf_s("Преобразованная последовательность пуста!");
- _getch();
- return 0;
- }
- UCHAR is_palindrome(char* str)
- {
- for (unsigned char i = 0; i < strlen(str) / 2; i++)
- {
- if (str[i] != str[strlen(str) - i - 1])
- return 0;
- }
- return 1;
- }
- UCHAR is_equal(char* str, char* last_str)
- {
- if (strlen(str) == strlen(last_str))
- {
- for (unsigned char i = 0; i < strlen(str); i++)
- if (str[i] != last_str[i])
- return 0;
- }
- else return 0;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement