Напечатать все слова последовательности, отличные от последнего слова, предварительно преобразовав по правилу - C (СИ)
Формулировка задачи:
последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 строчных русских букв; между соседними словами - запятая, за последним словом - точка. Напечатать все слова последовательности, которые отличны от последнего слова, предварительно преобразовав каждое из них по следующему правилу: удалить из слова первую букву.
Решение задачи: «Напечатать все слова последовательности, отличные от последнего слова, предварительно преобразовав по правилу»
textual
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- #include <string.h>
- #include <stdlib.h>
- #define MAX 30
- int main()
- {
- char* words[MAX];
- int wordsCount = 0;
- char buffstr[MAX] = {0};
- char ch[2] = " ";
- while (1)
- {
- ch[0] = getche();
- if (ch[0] == ',' || ch[0] == '.')
- {
- words[wordsCount] = (char*)malloc((strlen(buffstr) + 1)*sizeof(char));
- strcpy(words[wordsCount++], buffstr);
- strcpy(buffstr, "");
- }
- else strcat(buffstr, ch);
- if (ch[0] == '.') break;
- }
- printf("\n");
- for (int i = 0; i < wordsCount - 1; i++)
- if (strcmp(words[i], words[wordsCount - 1]))
- {
- words[i]++;
- printf("%s\n", words[i]);
- }
- return 0;
- }
Объяснение кода листинга программы
- Объявлены массив строк
words
типаchar*
и переменнаяwordsCount
для подсчета количества заполненных элементов массива. - В цикле
while
считываются символы по одному. - Если считанный символ является запятой или точкой, то это означает конец текущего слова, поэтому его добавляют в массив
words
и обнуляют буферbuffstr
. - В каждой итерации цикла
while
к буферуbuffstr
добавляется очередной считанный символ. - Если считанный символ является точкой, то это означает конец ввода, и цикл прерывается.
- В конце программы выводится каждое слово, которое не является последним, с помощью цикла
for
. - В каждой итерации цикла
for
проверяется, является ли текущее слово последним. - Если текущее слово не является последним, то к нему добавляется
1
и выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д