C/C++
С++, помогите пожалуйста с кодом, очень прошу, и можете коротко обьяснить код
Дан текст. Выведите на экран все слова, в которых буква ‘а’ встречается более 3 раз, а также найдите их количество.
#include <iostream>
#include <string>
using namespace std;
int main()
{
int count;
string str,tmp;
const char a = 'a'; // я использую латинскую букву, потому что
// у меня русские буквы занимают 2 байта и я не знаю, как с
// ними работать в C++
// если у вас кодировка windows-1251, то пишиту русскую а.
getline(cin,str);
for(int x = 0; x < str.length(); x++)
{
if(str[x] == ' ' || str[x] == '\t')
{
tmp = ""s;
while((str[x+1] == ' ' || str[x+1] == '\t') && x + 1 < str.length()) x++;
}
else if(str[x] == ',' || str[x] == ';' || str[x] == '.' || str[x] == '!' || str[x] == '\?' || str[x] == '(' || str[x] == ')')
{
tmp = ""s;
}
else
{
tmp = ""s;
while(x < str.length() && str[x] != ' ' && str[x] != '\t' && str[x] != ',' && str[x] != ';' && str[x] != '.' && str[x] != '!' && str[x] != '\?' && str[x] != '(' && str[x] != ')')
{
tmp += str[x];
x++;
}
count = 0;
for(int y = 0; y < tmp.length(); y++)
if(tmp[y] == a) count++;
if(count > 3)
cout << tmp << endl;
}
}
return 0;
}
#include <string>
using namespace std;
int main()
{
int count;
string str,tmp;
const char a = 'a'; // я использую латинскую букву, потому что
// у меня русские буквы занимают 2 байта и я не знаю, как с
// ними работать в C++
// если у вас кодировка windows-1251, то пишиту русскую а.
getline(cin,str);
for(int x = 0; x < str.length(); x++)
{
if(str[x] == ' ' || str[x] == '\t')
{
tmp = ""s;
while((str[x+1] == ' ' || str[x+1] == '\t') && x + 1 < str.length()) x++;
}
else if(str[x] == ',' || str[x] == ';' || str[x] == '.' || str[x] == '!' || str[x] == '\?' || str[x] == '(' || str[x] == ')')
{
tmp = ""s;
}
else
{
tmp = ""s;
while(x < str.length() && str[x] != ' ' && str[x] != '\t' && str[x] != ',' && str[x] != ';' && str[x] != '.' && str[x] != '!' && str[x] != '\?' && str[x] != '(' && str[x] != ')')
{
tmp += str[x];
x++;
}
count = 0;
for(int y = 0; y < tmp.length(); y++)
if(tmp[y] == a) count++;
if(count > 3)
cout << tmp << endl;
}
}
return 0;
}
#include "iostream"
#include "sstream"
#include "string"
#include "algorithm"
using namespace std;
int main(){
string s; int n=0; getline(cin,s); cout<<'\n'; istringstream ss(s); s=""; // чтение строки
while(ss){if(count(s.begin(),s.end(),'a')>3)cout<<s<<'\n',n++ ; ss>>s;} // вывод слов с (>3)a
cout<<"\nn="<<n<<'\n';} // вывод количества слов
Буквы a - латинские.
#include "sstream"
#include "string"
#include "algorithm"
using namespace std;
int main(){
string s; int n=0; getline(cin,s); cout<<'\n'; istringstream ss(s); s=""; // чтение строки
while(ss){if(count(s.begin(),s.end(),'a')>3)cout<<s<<'\n',n++ ; ss>>s;} // вывод слов с (>3)a
cout<<"\nn="<<n<<'\n';} // вывод количества слов
Буквы a - латинские.
Похожие вопросы
- Помогите пожалуйста написать код.(C++)
- Помогите пожалуйста написать код на c++, выводящий имя, фамилию и дату рождения нескольких человек
- Помогите пожалуйста написать код на C++
- Срочно!!! Помогите пожалуйста написать код к задачке на с++! Заранее спасибо!
- Помогите пожалуйста с кодом на с++
- Помогите пожалуйста с кодом....
- Помогите пожалуйста с кодом на с++
- Помогите пожалуйста ускорить код
- Помогите пожалуйста доработать код, язык С++
- Помогите, пожалуйста, написать код на C (Си)
Сначала вводится строка текста до нажатия клавиши Enter.
Потом прокручивается строка посимвольно.
В случае пробела, табуляции и знака препинания ничего не делается.
В других случаях, если буква или дефис, идет посимвольное наполнение переменной tmp.
Как только дошли до пробела, знака препинания, табуляции и так далее, останавливаемся и считаем буквы а в слове.
При каждой букве а идет нарастание счётчика count.
Потом идёт проверка, если больше 3, то выводим слово на экран и продолжаем цикл дальше, пока строка текста не кончится.