Форум программистов, компьютерный форум CyberForum.ru

Программа подсчёта букв - C++

Восстановить пароль Регистрация
 
Vlad_fractal
 Аватар для Vlad_fractal
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 78
07.11.2013, 13:38     Программа подсчёта букв #1
Написать программу подсчета букв е, во введенной строке.
Заранее благодарю.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
chedman
80 / 79 / 2
Регистрация: 30.10.2013
Сообщений: 249
07.11.2013, 14:00     Программа подсчёта букв #2
Как то так
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
#include <iostream>
#include <string>
#include <windows.h>
 
using namespace std;
 
int main()
{
    // кодировка файла CP1251
    // шрифт для консоли типа TrueType
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    string s;
    int cnt=0;
    cout << "Введите строку: " ;
    cin >> s;
 
    for(int i=0; i<s.size(); i++)
    {
        if(s.c_str()[i]=='e' || s.c_str()[i]=='E')  cnt++;
    }
 
    cout << "Английская буква 'E' встретилась " << cnt << " раз" << endl;
    return 0;
}
Правда строка не должна содержать пробелов, но принцип работы такой.

Добавлено через 10 минут
ну или вот ещё вариант, но уже пробел можно ставить в строку
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
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main()
{
    // кодировка файла CP1251
    // шрифт для консоли типа TrueType
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char c;
    int cnt=0;
    cout << "Введите строку: " ;
 
    do
    {
        if(c=='e' || c=='E') cnt++;
    }
    while( (c=cin.get())!=10);
 
    cout << "Английская буква 'E' встретилась " << cnt << " раз" << endl;
    return 0;
}
да ещё и не надо хранить строку, в программе
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
07.11.2013, 15:52     Программа подсчёта букв #3
chedman, а в чём проблема считать строку с пробелами?
C++
1
2
3
4
5
6
7
#include <string>
 
int main()
{
     string s;
     getline(cin,s);
}
Вуаля=)
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
07.11.2013, 18:00     Программа подсчёта букв #4
В качестве альтернативы:
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 <algorithm>
#include <windows.h>
 
int main()
{
   SetConsoleCP (1251); SetConsoleOutputCP (1251);
 
   std::cout << "Введите строку: " ;
   std::string text;
   std::getline(std::cin, text);
 
   std::cout << "Английская буква 'e' встретилась "
        << std::count(text.begin(), text.end(), 'e')
        << " раз(а)." << std::endl;
 
   return 0;
}
Vlad_fractal
 Аватар для Vlad_fractal
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 78
12.11.2013, 12:04  [ТС]     Программа подсчёта букв #5
Цитата Сообщение от chedman Посмотреть сообщение
if(s.c_str()[i]=='e' || s.c_str()[i]=='E') cnt++;
Можете прокомментировать эту строку, в частности что значит s.c_str()[i] ?
А также, идентична ли строка
Цитата Сообщение от chedman Посмотреть сообщение
s.size()
строке strlen(s)
chedman
80 / 79 / 2
Регистрация: 30.10.2013
Сообщений: 249
13.11.2013, 20:13     Программа подсчёта букв #6
C++
1
s.c_str()[i]
c_str нужна для получения си-строки, т.е. строки являющейся обычным массивом символов, а квадратные скобки нужны для получения символа из этого массива.
s.size() и strlen(s) дают один и то же результат.
Yandex
Объявления
13.11.2013, 20:13     Программа подсчёта букв
Ответ Создать тему
Опции темы

Текущее время: 07:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru