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

Определить, сколько раз каждая буква латинского алфавита встречается в строке

12.08.2018, 16:33. Показов 5379. Ответов 8
Метки нет (Все метки)

Дана строка длиной не более 80 символов, заканчивающаяся точкой. Необходимо определить, сколько раз каждая буква латинского алфавита встречается в строке. С++. Много раз пыталась по-разному написать код - ничего не выходит((. Visual Studio 2017, windows 7. Если можно. без функций.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.08.2018, 16:33
Ответы с готовыми решениями:

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

Сколько раз каждая буква из алфавита встречается в последовательности
Задачу я получается решил,только теперь не знаю как вывести сколько раз используется каждая буква...

Напечатать таблицу, показывающую, сколько раз в тексте встречается каждая буква алфавита
Написать программу, которая считывает с клавиатуры несколько строк текста и печатает таблицу,...

Определить, сколько раз встречалась каждая буква в строке?
Есть число N и N элементов. Элементы они же буквы от A до Z. Необходимо определить сколько раз...

8
155 / 107 / 36
Регистрация: 27.06.2018
Сообщений: 248
12.08.2018, 17:03 2
Цитата Сообщение от AlayaRomashka Посмотреть сообщение
Много раз пыталась по-разному написать код - ничего не выходит
На попытки глянуть можно?
0
391 / 64 / 11
Регистрация: 06.08.2018
Сообщений: 202
12.08.2018, 17:08 3
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
#include <iostream>
#include <vector>
#include<string>
 
struct SkolkoBukvaRaz{
  char bukva;
  unsigned int skolkoRaz;
};
 
int main()
{
  std::string stroka = "aaaBBca.";
  std::vector<SkolkoBukvaRaz> itogo;
  for(unsigned int i=0; i<stroka.size();i++){
    if(stroka[i]=='.') continue;
    bool estUzhe=false;
    for(unsigned int j=0; j<itogo.size();j++){
      if(stroka[i]==(itogo[j]).bukva) {
        estUzhe=true;
        (itogo[j]).skolkoRaz++;
      }
    }
    if(estUzhe==false){
      SkolkoBukvaRaz bukvaRaz;
      bukvaRaz.bukva=stroka[i];
      bukvaRaz.skolkoRaz=1;
      itogo.push_back(bukvaRaz);
    }
  }
  if(itogo.size()==0){ std::cout<<"bukv net."<<std::endl; }
  else{
    for(unsigned int i=0; i<itogo.size();i++){
      std::cout<<"bukva "<<(itogo[i]).bukva<<" vstrechaetsya "<<(itogo[i]).skolkoRaz<<" raz"<<std::endl;
    }
  }
  return 0;
}
А заглавные и строчные буквы считаются разными или одинаровыми?
В моем примере "А" и "а" будут разными. Но можно добавить кусок и чтоб одинаковыми считались
1
5 / 5 / 1
Регистрация: 20.07.2018
Сообщений: 24
12.08.2018, 20:50 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
 
int main() {
    std::string str;
    std::getline(std::cin,str,'.'); //Ввод,пока не встретим точку
 
    std::vector<char> vc(str.begin(),str.end()); //Создаем вектор всех символов
    std::set<char> uvc(vc.begin(),vc.end()); //Множество уникальных символов (каждый символ храниться по 1 разу)
    for(char c : uvc)
        std::cout << c << " - " << std::count(vc.begin(),vc.end(),c) << " times.\n";
    return 0;
}
0
0 / 0 / 0
Регистрация: 23.05.2018
Сообщений: 23
14.08.2018, 15:17  [ТС] 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
 
int main() {
    std::string str;
    std::getline(std::cin,str,'.'); //Ввод,пока не встретим точку
 
    std::vector<char> vc(str.begin(),str.end()); //Создаем вектор всех символов
    std::set<char> uvc(vc.begin(),vc.end()); //Множество уникальных символов (каждый символ храниться по 1 разу)
    for(char c : uvc)
        std::cout << c << " - " << std::count(vc.begin(),vc.end(),c) << " times.\n";
    return 0;
}
Спасибо, но непонятно немного. Почему в 8 строке высвечивается "namespace 'std' не содержит члена 'getline'?
0
7002 / 4748 / 2727
Регистрация: 18.12.2017
Сообщений: 14,847
14.08.2018, 21:35 7
Цитата Сообщение от AlayaRomashka Посмотреть сообщение
Почему в 8 строке высвечивается
попробуйте добавить #include <string>

ещё вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <map>
using namespace std;
 
int main() 
{
    string s;
    cout << "String:\n";
    getline(cin, s);
 
    map <char, int> m;
    for (size_t i = 0; i < s.size(); i++) m[s[i]]++;
    
    for (auto i = m.begin(); i != m.end(); i++)
    cout << i->first << "->" << i->second << endl;   
system("pause");
return 0;
}
0
618 / 465 / 273
Регистрация: 24.02.2017
Сообщений: 1,673
14.08.2018, 22:20 8
Лучший ответ Сообщение было отмечено AlayaRomashka как решение

Решение

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
#include <iostream>
using namespace std;
 
int main()
{
   string s;
   size_t i=65,j=0;
 
   cout << "String:\n";
   getline(cin, s);
   while(i<=90)
     {
       int count=0;
       while(s[j]!='\0')
         {
            s[j]=toupper(s[j]);
            if(i==s[j])
               count++;
            j++;
         }
       if(count!=0)
       cout<<(char)i<<"  "<<count<<"\n";
       i++;
       j=0;
     }
 
   system("pause");
   return 0;
}
1
0 / 0 / 0
Регистрация: 23.05.2018
Сообщений: 23
15.08.2018, 08:57  [ТС] 9
Спасибо огромное!!!! Ваша помощь была просто неоценима!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2018, 08:57

Необходимо определить, сколько раз каждая цифра встречается в строке
Дана строка длиной не более 80 символов, оканчивающаяся точкой. Необходимо определить, сколько раз...

Определить, сколько раз в строке встречается каждый из символов алфавита
Определить, сколько раз в сформированной вами строке встречается каждый из симво-лов алфавита ...

Посчитать сколько раз встречается каждая буква в тексте
Здравствуйте! А задача звучит так: есть массив с буквами, и нужно отсортировать таким образом,...

Определить, сколько раз заданная буква встречается в заданной строке на позициях, кратных 5
Определить, сколько раз заданная буква встречается в заданной строке на позициях, кратных 5.


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

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

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