Найти количество слов, начинающихся с заданного символа, и заменить эти слова их порядковым номером в строке, заключенным в фигурные скобки - C (СИ)
Формулировка задачи:
условие
Дана строка. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Найти количество слов, начинающихся с заданного символа, и заменить эти слова их порядковым номером в строке, заключенным в фигурные скобки.
препод придрался к тому что я вывожу по отдельности слова и символы.на вывод нужно подать откорректированную старую строку либо записать слова в новую.Буду признателен за помощь
#include <conio.h> #include <stdio.h> #include <string.h> #include <windows.h> int main () { SetConsoleCP(1251); SetConsoleOutputCP(1251); printf ("введи строку :\n"); char str[255]; gets(str); printf ("введи символ:\n"); char ch; scanf ("%c",&ch); char * pch; pch = strtok (str," "); int count=0; int i=0; while (pch != NULL) { if (pch[0]!=ch) { printf("%s ",pch); i++; } else { i++; printf ("{%d} ",i); } pch = strtok (NULL, " "); count++; } printf ("\n всех слов %d ",count); getch(); return 0; }
Решение задачи: «Найти количество слов, начинающихся с заданного символа, и заменить эти слова их порядковым номером в строке, заключенным в фигурные скобки»
textual
Листинг программы
#include <conio.h> #include <stdio.h> #include <string.h> #include <windows.h> int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); printf("введи строку : "); char str[255]; gets(str); printf("введи символ: "); char ch; scanf("%c", &ch); char result[sizeof(str)] = { 0 }; char* presult = result; int count = 0; int i = 0; char* pch; pch = strtok(str, " "); while (pch != NULL) { if (pch[0] != ch) { sprintf(presult, "%s ", pch); i++; } else { i++; sprintf(presult, "{%d} ", i); } for (; *presult; ++presult) { ; } pch = strtok(NULL, " "); count++; } printf("%s\nвсех слов %d ", result, count); getch(); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Устанавливается кодировка консоли как CP-1251
- Пользователю предлагается ввести строку и символ для поиска
- Вводится строка и сохраняется в массив str
- Вводится символ для поиска и сохраняется в массив ch
- Создается пустой массив result для хранения результата
- Устанавливается начальный указатель на начало массива result
- Инициализируется переменная count для подсчета количества найденных слов
- Инициализируется переменная i для отслеживания порядка найденных слов
- Устанавливается начальный указатель на первое слово в строке
- В цикле while происходит поиск слов, начинающихся с заданного символа
- Если слово не начинается с заданного символа, то оно добавляется в результирующий массив
- Если слово начинается с заданного символа, то увеличивается значение i и добавляется в результирующий массив
- После каждого слова выполняется пустая операция для перехода к следующему слову
- В конце цикла выводится количество найденных слов
- Выводится результирующий массив
- Ожидается нажатие клавиши для завершения программы
- Возвращается 0, что означает успешное завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д