Задача Посчитать количество слов в строке. Слова могут разделяться одним или несколькими пробелами.
Для ввода строки нельзя использовать функцию cin в данном случае, поскольку эта функция осуществляет ввод строки до пробела или перевода строки. Поэтому воспользуемся методом get функции cin:
cin.get(УказательНаСтроку, МаксимальноеЧислоСимволов);
Условием окончания строки является символ с кодом равным 0 (нуль-символ, ‘\0’). После ввода строки организуем цикл по элементам строки до ее окончания. Перед циклом убираем пробелы, введенные в начале строки (до первого слова). Условием определения следующего слова в строке является наличие какого-то символа после пробела. Именно это условие увеличивает счетчик count на 1.
Реализация на C++
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using namespace std;
int main()
{
char s[80];
int slovo, count = 0;
system("chcp 1251");
system("cls");
cout << "Введите строку: " << endl;
cin.get(s, 80);
int i = 0;
while (s[i] == ' ' && s[i] != '\0')
i++;
slovo = 0;
while (s[i] != '\0') {
if (s[i] != ' ' && slovo == 0)
{
slovo = 1;
count++;
}
else if (s[i] == ' ')
slovo = 0;
i++;
}
cout << "Количество слов в строке " << count;
cin.get(); cin.get();
return 0;
}
Результат выполнения
Назад: Задачи и их решения
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using namespace std;
int main()
{
unsigned t = time(0);
system("chcp 1251");
string s;
getline(cin , s);
int pos = s.find(' ');
unsigned iter = 0;
while(pos + 1)
{
++iter;
s.erase(0 , pos + 1);
pos = s.find(' ');
}
cout << iter + 1 << endl;
cout << time(0) - t << " секунды";
return 0;
}
2
3
4
5
6
7
8
9
int count = 0;
foreach(string w in words)
{
count++;
}
Console.WriteLine($"количество слов в строке = {count} ");
Посмотрите здесь
2
3
4
5
6
7
8
9
10
11
using namespace std;
int main() {
char s[80], word[80];
stringstream sstr;
int nWord = 0;
cin.get(s, 80);
sstr <> word;
++nWord;
cout << nWord;
}
Часть кода все-таки съелась