Подсчитать количество слов и пробелов в строке - C (СИ)
Формулировка задачи:
Надотэ подсчитать количество слов и пробелов.как я не пытался- пробелы находит правильно,а слова при двойно пробеле на 1 больше.помогите исправить это.код почти такой http://pyatnitsev.ru/2011/12/09/wordsinstring/
Решение задачи: «Подсчитать количество слов и пробелов в строке»
textual
Листинг программы
#include <stdio.h>
#include <locale.h>
#include <math.h>
#include <string.h>
int main()
{
char myString[40];
int space=0;
int reading_word = 0, word_cnt = 0, i;
puts("Vvedyte stroku: ");
gets(myString);
for (i=0; i<strlen(myString); i++)
{
if (myString[i] == ' ')
{
space = space+1;
reading_word = 0;
} else {
if (reading_word == 0)
{
word_cnt++;
}
reading_word = 1;
}
}
printf("chislo slov ravno %d\n", word_cnt);
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами, строками и математическими вычислениями.
- Объявление переменных: массив myString для хранения строки, переменные space, reading_word и word_cnt для подсчета количества пробелов и слов.
- Вывод приглашения для ввода строки.
- Считывание строки с помощью функции gets(myString).
- Проход по каждому символу в строке с помощью цикла for и проверка, является ли текущий символ пробелом.
- Если текущий символ - пробел, то увеличение счетчика пробелов space и сброс флага reading_word.
- Если текущий символ не пробел, то проверка флага reading_word.
- Если reading_word равно 0, то увеличение счетчика слов word_cnt и сброс флага reading_word.
- Установка флага reading_word в 1.
- После прохода по всем символам вывод количества слов в строке с помощью функции printf.