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

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

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

C++ поиск всех вхождений шаблона в строку
C++ Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку...
Ввести строку символов, если ее длина кратна 5, посчитать количество скобок всех видов. Решить в VC++. C++
Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. C++
C++ Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Phantom
Эксперт C++
 Аватар для Phantom
3159 / 841 / 15
Регистрация: 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");
}
Gravity
 Аватар для Gravity
555 / 549 / 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;
}
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1330 / 863 / 50
Регистрация: 02.01.2009
Сообщений: 2,621
Записей в блоге: 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;
}
Helicopter
0 / 0 / 0
Регистрация: 27.03.2009
Сообщений: 5
22.04.2009, 18:28  [ТС]     Количество вхождений всех символов в строку #5
Gravity, а что делает 16 строка?
А 14 вносит в массив символ s[i]?
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.04.2009, 02:23     Количество вхождений всех символов в строку #6
здесь есть возможность исключить какие-нибудь символы или считать только определённую группу и даже нет зависимости от порядка (как они идут в таблице ASCII) или зависимости от расстояния между большими и маленькими и так далее
Вложения
Тип файла: zip hello_count.zip (1.2 Кб, 43 просмотров)
@Alexa@
0 / 0 / 0
Регистрация: 26.02.2011
Сообщений: 21
03.03.2011, 19:24     Количество вхождений всех символов в строку #7
а подскажите как что би символ нужно было вводить и искать количество его вхождений
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. инкремент по индексу в массиве
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
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;
}
@Alexa@
0 / 0 / 0
Регистрация: 26.02.2011
Сообщений: 21
03.03.2011, 20:06     Количество вхождений всех символов в строку #10
Спасибо большое))))!!!!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2011, 01:53     Количество вхождений всех символов в строку
Еще ссылки по теме:

C++ Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить
Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. C++
C++ Посчитать количество всех букв и количество вхождений каждой буквы

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

Или воспользуйтесь поиском по форуму:
accept
4837 / 3236 / 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]$
Yandex
Объявления
04.03.2011, 01:53     Количество вхождений всех символов в строку
Ответ Создать тему
Опции темы

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