Ввести несколько строк текста, и использовать функцию strtok, для подсчета общего количества слов - C (СИ)
Формулировка задачи:
Вот мое задание: Напишите программу, которая вводит несколько строк текста и использует функцию strtok, чтобы сосчитать общее количество слов. Предположим, что слова разделяются символами новой строки или пробелами.
{
char **str = new char* [50];
for (int counter = 0; counter < 50; counter ++)
str[counter] = new char[50];
int count=0;
char *pstr;
printf("Введите текст/строку для подсчёта кол-ва слов: \n");
for (int i = 0; i < 50; i++)
{
gets(str[i]);
if (strcmp(str[i], "") ==0);
exit(1);
}
pstr=strtok(*str," ");
while (pstr!=NULL)
{
pstr=strtok(NULL," ");
count++;
}
printf("Слов всего - %d\n", count);
getch();
}Решение задачи: «Ввести несколько строк текста, и использовать функцию strtok, для подсчета общего количества слов»
textual
Листинг программы
int strtok(char s[]);
Объяснение кода листинга программы
- Вводится строка текста с помощью функции
gets(). - Инициализируется переменная
sзначением введенной строки. - Вызывается функция
strtok()для разделения строки на слова. - Результат работы функции
strtok()сохраняется в переменнойword. - Проверяется условие
word != NULL. - Если условие истинно, то выполняется следующая последовательность действий:
а) В счетчик
countувеличивается на единицу. б) Выполняется операция приведения типаwordк типуchar*для корректной работы функцииprintf(). в) Выводится значение переменнойcountс помощью функцииprintf(). г) Выполняется следующая последовательность действий: — Переменнаяsобновляется значениемword + 1. — Вызывается функцияstrtok()для разделения обновленной строки на слова. — Процесс повторяется до тех пор, пока условиеword != NULLостается истинным. - Если условие
word != NULLложно, то выводится сообщение об ошибке с помощью функцииprintf().