0 / 0 / 0
Регистрация: 18.04.2013
Сообщений: 1
1

Дана строка, состоящая из русских слов. Найти количество слов, которые содержат ровно три буквы «А»

18.04.2013, 15:16. Показов 10950. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые содержат ровно три буквы «А»
Нашла здесь много решений данной задачи в C++, но все написаны в консоли, а мне нужно без всех эти char,gets и puts. Поймите правильно, я несчастный первокурсник
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2013, 15:16
Ответы с готовыми решениями:

В строке найти количество слов, которые содержат ровно три буквы «А»
Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним...

Дана строка, состоящая из слов, разделённых пробелами(одним или несколькими) . Найти количество слов , которые не содерж
Дана строка, состоящая из слов, разделённых пробелами(одним или несколькими) . Найти количество...

Дано строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). ​​Определить количество слов, которые заканчиваются одной и той
Дано строка, состоящая из русских слов, разделенных пробелами (одним или несколькими)....

Определить количество слов, которые содержат ровно четыре буквы
Помогите. Дано строка, состоящая из русских слов, разделенных пробелами (одним или несколькими)....

7
593 / 531 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
18.04.2013, 16:25 2
если, как вы говорите не в консоли, - то как же тогда?
0
279 / 39 / 13
Регистрация: 11.10.2015
Сообщений: 405
19.03.2017, 19:07 3
C++
1
2
3
4
5
    std::istringstream iss{ some };
    std::cout << std::count_if(std::istream_iterator<std::string>(iss),
                               std::istream_iterator<std::string>(), 
                               [](auto const& s) { return std::count(s.begin(), s.end(), 'A') == 3;})
              << std::endl;
Добавлено через 38 минут
C++
1
std::tolower('A')
если регистр не важен
0
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
19.03.2017, 19:32 4
Они должны идти три подряд, или можно в разнобой?

Добавлено через 19 минут
C++
1
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <cstdlib>
#include <Windows.h>
#include <string>
#include <sstream>
#include <iomanip>
 
class wrds{
private:
    std::string text;
public:
    wrds (std::string str){
        text = str;
    }
 
    ~wrds (){
        
    }
 
    std::string get_wrd(){
        return text;
    }
};
 
 
int main(){
    SetConsoleCP (1251);
    SetConsoleOutputCP (1251);
 
    std::string usr_txt = "найти слово в катарам содержится три буквы ааа";
    std::string wrd;
    std::istringstream str (usr_txt);
 
    wrds* fnd[10];
    int count (0);
 
    while (str >> wrd){
        short find_a (0);
        for (int i(0); wrd[i]; i++){
            wrd[i] == 'а' ? ++find_a : false;
        }
        (find_a >= 3) ? fnd[count++] = new wrds(wrd) : false;
    }
 
    std::cout << "Найденные слова: " << std::endl;
    for (int i(0); i!=count; i++){
        std::cout << std::setw (3) << i << std::setw (10) << fnd[i] -> get_wrd() << std::endl;
        delete fnd[i];
    }
 
 
    system ("pause");
    return 0;
};
0
279 / 39 / 13
Регистрация: 11.10.2015
Сообщений: 405
19.03.2017, 22:40 5
Photofenix, ну и нахрена здесь деструктор нужен?
0
Рэмбо комнатный
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
19.03.2017, 23:29 6
Gauhar_947, будучи на первом курсе не могу назвать себя так
Цитата Сообщение от Gauhar_947 Посмотреть сообщение
я несчастный первокурсник
Добавлено через 7 минут
C++
1
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
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <cstring>
using namespace std;
 
int main()
{
    string str="Строка с рандомным текстом",str1="";
    int i,j,c=0,k=0;
    for (i=0; i<str.length(); i++)
    {
        if (str[i]!=' ')
        {
            str1=str1+str[i];
        }
        else
        {
            for (j=0; j<str1.length(); j++)
            {
                if (str1[j]=='a' || str1[j]=='а' || str1[j]=='A' || str1[j]=='А')
                {
                    k=k+1;
                }
            }
            if (k==3)
            {
                c=c+1;
                k=0;
                str1="";
            }
            else
            {
                k=0;
                str1="";
            }
        }
    }
    return c;
}
0
786 / 593 / 317
Регистрация: 24.02.2017
Сообщений: 2,089
19.03.2017, 23:53 7
C++
1
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <string.h>
#include <windows.h>
using namespace std;
 
char bufRus[256];
char* RUS(const char*text) //функция поддержки русского языка
{
CharToOem(text,bufRus);
return bufRus;
}
 
int main()
{
string s=" HАЙТИ СЛОВО  В КАТАРАМ СОДЕРЖИТЬСЯ ТРИ БУКВЫ ААА А НЕ АААААА",t;
int i=0,count=0,slov=0;
 
cout<<RUS(s.c_str())<<"\n";
 
for(i;i<=s.size();i++)
  {
    if(s[i]!=32)
      t.operator +=(s[i]);
    if(s[i]=='А')
       count++;
    if(count==3)
       count=3;
    if(s[i]==32 || s[i]=='\0')
     {
       if(count==3)
       {
         cout<<RUS(t.c_str())<<"\n";
         slov++;
        }
       count=0;
       t.clear();
 
    }
  }
cout<<RUS("слов всего = ")<<slov<<"\n";
system("pause");
return 0;
}
0
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 3
02.11.2018, 23:25 8
А как вывести эти слова ? Вот мой нерабочий код, помогите исправить.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
 char* s = new char [100];
 cin.getline(s,100);
 char* t=strtok(s,","); 
 do
 {
  int j=0;
  for (int i=0; i<strlen(t); i++)
   {
  if (t[i]=='a')
     {j++;}
     if (j==3){
  cout<<t[i]<<" ";}
   }}
 while (t=strtok(NULL,",")); 
 return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2018, 23:25
Помогаю со студенческими работами здесь

Определить количество слов, которые содержат ровно четыре буквы "о", "О"
Дано строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить...

Дана строка содержащая английский текст. Найти количество слов, начинающихся с буквы b
1)Днана строка содержащая английский текст. Найти количество слов, начинающихся с буквы b....

Определить слова, которые содержат ровно три буквы
Задана не пустая последовательность не пустых слов из латинских букв; соседние слова отделяются...

Дана строка, состоящая из слов
Дана строка, состоящая из слов, разделенных пробелами. Вывести на экран порядковый номер слова...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru