Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
Gauhar_947
0 / 0 / 0
Регистрация: 18.04.2013
Сообщений: 1
1

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

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

Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, которые содержат ровно три буквы «А»
Нашла здесь много решений данной задачи в C++, но все написаны в консоли, а мне нужно без всех эти char,gets и puts. Поймите правильно, я несчастный первокурсник
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2013, 15:16
Ответы с готовыми решениями:

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

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

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

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

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

7
OstapBender
584 / 523 / 75
Регистрация: 22.03.2011
Сообщений: 1,585
18.04.2013, 16:25 2
если, как вы говорите не в консоли, - то как же тогда?
0
zarko97
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
Photofenix
61 / 61 / 39
Регистрация: 18.11.2016
Сообщений: 514
Завершенные тесты: 1
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
zarko97
279 / 39 / 13
Регистрация: 11.10.2015
Сообщений: 405
19.03.2017, 22:40 5
Photofenix, ну и нахрена здесь деструктор нужен?
0
GeFacle
Рэмбо комнатный
95 / 95 / 99
Регистрация: 05.03.2017
Сообщений: 505
Завершенные тесты: 4
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
повар1
196 / 160 / 142
Регистрация: 24.02.2017
Сообщений: 640
Завершенные тесты: 1
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
Mikkey_mouse
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
02.11.2018, 23:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2018, 23:25

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

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

Дана строка,состоящая из нескольких слов
Дана строка, состоящая из нескольких слов,набрать заглавными буквами и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru