Предмет: Информатика,
автор: nikita000999
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы. 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; }
}
return 0;
}
Не работает,почему?Может по другому как-то?
Ответы
Автор ответа:
1
//Во-первых, строку нужно принимать через gerline, ибо через cin у вас в строку запишутся символы до первого пробела. Во -вторых, поиск слов из 3 символов выполнен неправильно, точнее он сработает в одном только случае, если вы введете строку из 3 символов, и то выведет 3 раза одно и то же слово.
//Вот как сделал я:
#include <iostream>
using namespace std;
int main()
{
string str;
int Size;
int ArrIndex = 0;
cout « "Enter string: ";
getline (cin, str);
string Element[str.length()];
for (int i = 0; i < str.length(); i++)
{
if (str[i] != ' ' && str[i] != '.')
Element[ArrIndex] += str[i];
else
ArrIndex++;
}
cout « endl;
for (int j = 0; j < str.length(); j++)
{
Size = 0;
for (int k = 0; k < Element[j].length(); k++)
Size++;
if (Size == 3)
cout « Element[j] « endl;
}
return 0;
}
//Вот как сделал я:
#include <iostream>
using namespace std;
int main()
{
string str;
int Size;
int ArrIndex = 0;
cout « "Enter string: ";
getline (cin, str);
string Element[str.length()];
for (int i = 0; i < str.length(); i++)
{
if (str[i] != ' ' && str[i] != '.')
Element[ArrIndex] += str[i];
else
ArrIndex++;
}
cout « endl;
for (int j = 0; j < str.length(); j++)
{
Size = 0;
for (int k = 0; k < Element[j].length(); k++)
Size++;
if (Size == 3)
cout « Element[j] « endl;
}
return 0;
}
Приложения:
Похожие вопросы
Предмет: Математика,
автор: adelyashakslm
Предмет: Физика,
автор: pashenko2345
Предмет: Литература,
автор: lilgae4kaaa
Предмет: Математика,
автор: Aizhan7777
if (s.length() == 3) { cout << s << endl; }