Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы. C+ // 9rab.cpp: определяет точку входа для консольного приложения / #include "stdafx.h #include #include using namespace std int main(
setlocale(LC_ALL, "Russian") string s cout << "Введите фразу" << endl cin >> s; cout << endl for (int i = 0; i < s.length();i++) if (s.length() == 3) { cout << s << endl;
Проблема заключается в том, что вы проверяете длину всей строки вместо длины отдельного слова. Для выполнения условия "Слова, содержащие три буквы" необходимо разделить строку на отдельные слова и проверить длину каждого слова.
Вот исправленный код:
#include "stdafx.h #include <iostream> #include <string> #include <sstream> using namespace std int main(
setlocale(LC_ALL, "Russian") string s cout << "Введите фразу: " << endl getline(cin, s) istringstream iss(s) string word while (iss >> word) if (word.length() == 3) cout << word << endl
return 0 }
Теперь код разделяет строку на отдельные слова и проверяет длину каждого слова.
Проблема заключается в том, что вы проверяете длину всей строки вместо длины отдельного слова. Для выполнения условия "Слова, содержащие три буквы" необходимо разделить строку на отдельные слова и проверить длину каждого слова.
Вот исправленный код:
#include "stdafx.h#include <iostream>
#include <string>
#include <sstream>
using namespace std
int main(
setlocale(LC_ALL, "Russian")
string s
cout << "Введите фразу: " << endl
getline(cin, s)
istringstream iss(s)
string word
while (iss >> word)
if (word.length() == 3)
cout << word << endl
return 0
}
Теперь код разделяет строку на отдельные слова и проверяет длину каждого слова.