Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.69
Helicopter
0 / 0 / 0
Регистрация: 27.03.2009
Сообщений: 5
#1

Количество вхождений всех символов в строку - C++

22.04.2009, 16:26. Просмотров 2128. Ответов 10
Метки нет (Все метки)

Видел похожую тему, но там задача была проще, так как надо было найти конкретный символ. В моем случае строка вводится пользователем. Например, вводим language и получаем
l - 1
a - 2
n - 1
g - 2
u - 1
e - 1
Программа на С.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2009, 16:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Количество вхождений всех символов в строку (C++):

Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку... - C++
Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку и в случае, если цифр 5, 6,...

Подсчитать количество вхождений в строку определенных символов - C++
Помогите написать программу... Данная строка символов S. Подсчитать : а ) сколько раз среди данных символов встречается символ + и...

Подсчитать количество вхождений в строку заданной последовательности символов - C++
Дана строка символов. Подсчитать количество вхождений в строку заданной последовательности символов. Строка для обработки ввести с...

Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. - C++
Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. помогите...

Подсчитать количество вхождений слова «мама» в строку и вывести номера первых позиций этих вхождений - C++
Помогите исправить ошибку. Как вывести номера первых позиций вхождений слова мама? Подсчитать количество вхождений слова «мама» в строку...

Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку - C++
Здравствуйте. Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку. Как такую программу сделать? Заранее спасибо за...

10
Phantom
Эксперт С++
3165 / 847 / 16
Регистрация: 29.12.2008
Сообщений: 952
22.04.2009, 16:59 #2
Вот такой код у меня получился.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
void main()
{
    int i, mas[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    char slovo[255];
    cin>>slovo;
    int n=strlen(slovo);
    for (i=0;i<n;i++)
        mas[slovo[i]-97]++;
    for (i=0;i<26;i++)
    {
        if (mas[i]!=0)
        cout<<char(i+97)<<" - "<<mas[i]<<endl;
    }
    system("pause");
}
1
Gravity
564 / 558 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
22.04.2009, 17:58 #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <string.h>
#include <conio.h>
 
main()
{
    int i;
    char s[80], 
         freq[256];  /* массив частот символов */
    
    scanf("%s", s);
    memset(freq, 0, sizeof(freq));
    for(i = 0; s[i] != '\0'; i++)
       freq[s[i]]++;
    for(i = 0; i < sizeof(freq); i++)
       if(freq[i])
          printf("%c - %d\n", i, freq[i]);
    getch();
    return 0;
}
1
ISergey
Maniac
Эксперт С++
1390 / 901 / 55
Регистрация: 02.01.2009
Сообщений: 2,693
Записей в блоге: 1
22.04.2009, 18:26 #4
На С++ можно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <algorithm>
#include <string>
#include <set>
int main()
{
    std::string buff; std::cin>>buff;
    std::multiset<char> con;
    con.insert(buff.begin(),buff.end());
    std::multiset<char>::iterator it = con.begin();
    for(; 
        it != con.end(); 
        it = std::upper_bound(con.begin(),con.end(),*it++))
 
        std::cout
        <<*it
        <<" : "
        <<std::count(con.begin(),con.end(),*it)
        <<std::endl;
 
    return 0;
}
0
Helicopter
0 / 0 / 0
Регистрация: 27.03.2009
Сообщений: 5
22.04.2009, 18:28  [ТС] #5
Gravity, а что делает 16 строка?
А 14 вносит в массив символ s[i]?
0
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.04.2009, 02:23 #6
здесь есть возможность исключить какие-нибудь символы или считать только определённую группу и даже нет зависимости от порядка (как они идут в таблице ASCII) или зависимости от расстояния между большими и маленькими и так далее
0
Вложения
Тип файла: zip hello_count.zip (1.2 Кб, 44 просмотров)
@Alexa@
0 / 0 / 0
Регистрация: 26.02.2011
Сообщений: 21
03.03.2011, 19:24 #7
а подскажите как что би символ нужно было вводить и искать количество его вхождений
0
barmaley2005
7 / 7 / 0
Регистрация: 02.03.2011
Сообщений: 19
03.03.2011, 19:30 #8
Цитата Сообщение от Helicopter Посмотреть сообщение
Gravity, а что делает 16 строка?
А 14 вносит в массив символ s[i]?
1. if(freq[i]) тож самое что и if(freq[i] != 0)
2. инкремент по индексу в массиве
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
03.03.2011, 19:42 #9
Цитата Сообщение от @Alexa@ Посмотреть сообщение
а подскажите как что би символ нужно было вводить и искать количество его вхождений
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
#define N 100
 
int main()
{
    char ch;
    char s[N];
    char* p = s;
    int count = 0;
 
    printf("Input s: ");
    fgets(s, N, stdin);
 
    printf("Input ch: ");
    ch = getchar();
 
    while(*p) if(*p++ == ch) ++count;
 
    printf("Result: %d\n", count);
    return 0;
}
0
@Alexa@
0 / 0 / 0
Регистрация: 26.02.2011
Сообщений: 21
03.03.2011, 20:06 #10
Спасибо большое))))!!!!!!
0
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.03.2011, 01:53 #11
Цитата Сообщение от rangerx
C
1
ch = getchar();
ch должна быть типа int

иначе неправильно реагирует на символ
C
1
2
3
4
5
6
7
8
9
10
 
#include <stdio.h>
 
int main(void)
{
    char c;
    if ((c = getchar()) == EOF)
        printf("end of file\n");
    return 0;
}
Код
[guest@localhost tests]$ echo $'\xffabc' | ./t
end of file
[guest@localhost tests]$
0
04.03.2011, 01:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2011, 01:53
Привет! Вот еще темы с ответами:

Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. - C++
Ребят , помогите плиз , послезавтра экзамен , вот нашел возможные задание , может кто подсказать , или показать решения ? Язык : С++/...

Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить - C++
Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. #include...

Ввести строку символов, если ее длина кратна 5, посчитать количество скобок всех видов. Решить в VC++. - C++
Ввести строку символов, если ее длина кратна 5, посчитать количество скобок всех видов. Решить задачу в VC++.

Посчитать количество всех букв и количество вхождений каждой буквы - C++
Есть файл из нескольких строк. нужно: 1 посчитать количество всех букв 2 посчитать количество каждой из букв (abcd) Проблема:...


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

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

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