Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
mariacatz
1 / 1 / 5
Регистрация: 06.12.2014
Сообщений: 37
#1

Для каждого символа исходной строки найти число вхождений его в строке - C++

08.12.2014, 21:36. Просмотров 659. Ответов 5
Метки нет (Все метки)

Для каждого символа исходной строки найти число вхождений его в строке и напечатать в столбец(символ, частота вхождения)
Почему-то неправильные результаты выдает. Я новичок,поэтому очень прошу помощи
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void f(char *a)
{
    int b = 0; int i=0, j=1;
    while (i < n)
    {
        while (j < n)
        {
            if (a[i] = a[j])  b++;
            j++;
        }
        
        printf("%c:%i\n", a[i], b);
        i++; j = 1;b = 0;
    }
}
Добавлено через 31 секунду
#define n 5
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2014, 21:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Для каждого символа исходной строки найти число вхождений его в строке (C++):

Поменяйте чётные символы между строками, и после каждого четного символа добавьте его номер в исходной строке
Запросите у пользователя 2 строки длинной от 4 до 20 символов.Поменяйте чётные...

Определить количество вхождений каждого символа в строке
Помогите решить задачу! Вот условие: После ввода с клавиатуры произвольного...

Подсчитать число вхождений каждого символа в файл
Дан символьный файл f Подсчитать число вхождений в файл каждой из букв a, b,...

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

После ввода с клавиатуры произвольного строки выдать на экран протокол о количестве вхождений каждого символа. В протоколе символы расположить по алфа
После ввода с клавиатуры произвольного строки выдать на экран протокол о...

В веденной строке после каждого символа добавить его код
Вопрос в том, как мне вывести именно после каждого символа?..а, ещё оно и не те...

5
olgashat
88 / 71 / 81
Регистрация: 07.12.2014
Сообщений: 303
08.12.2014, 21:39 #2
Лучший ответ Сообщение было отмечено mariacatz как решение

Решение

C++
1
2
if (a[i] == a[j])  b++;//должна быть использована операци сравнения
            j++;
Добавлено через 50 секунд
кроме того будут выведены повторяющиеся символы несколько раз
если не запрещено, лучше затирать повторные вхождения символов
0
mariacatz
1 / 1 / 5
Регистрация: 06.12.2014
Сообщений: 37
08.12.2014, 21:44  [ТС] #3
спасибо

Добавлено через 1 минуту
0
zss
Модератор
Эксперт С++
6950 / 6512 / 4133
Регистрация: 18.12.2011
Сообщений: 17,173
Завершенные тесты: 1
08.12.2014, 22:13 #4
Проще создать массив, длина которого равна длине кодовой таблицы (256).
Обнулить его и потом для каждого символа строки увеличивать элемент массива,
номер которого равен коду символа.
C++
1
2
3
4
5
6
7
8
int a[256]={0};
unsigned char str[]="bla bla bla....123";
int L=strlen(str);
for(int j=0;j<L;j++)
  a[str[j]]++;
for(int i=0;i<256;i++)
  if(a[i])
    cout<<(char)i<<" встречается "<<a[i]<<" раз";
1
mariacatz
1 / 1 / 5
Регистрация: 06.12.2014
Сообщений: 37
09.12.2014, 14:02  [ТС] #5
Не могли бы вы подробнее объяснить 5 и 7 строки программы? не совсем понимаю,как она работает

Добавлено через 2 минуты
не могу понять алгоритм(
0
zss
Модератор
Эксперт С++
6950 / 6512 / 4133
Регистрация: 18.12.2011
Сообщений: 17,173
Завершенные тесты: 1
09.12.2014, 14:15 #6
5 строка
Цитата Сообщение от zss Посмотреть сообщение
увеличивает элемент массива,
номер которого равен коду символа
Соответственно, сколько раз мы увеличиваем i-ый элемент массива,
столько раз код i встречается в строке.
1
09.12.2014, 14:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2014, 14:15
Привет! Вот еще темы с решениями:

Найти число пробелов в строке и заменить их на номер по порядку в исходной строке
Задание: Во введенной пользователем строке найти число пробелов и заменить все...

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

Для каждого из слов предложения вывести количество его вхождений
Помогите пожалуйста! Не могу найти ошибку. Очень срочно! Компилирует мне он...

Для каждого элемента определить число вхождений в данную последовательность
Помогите пожалуйста!!! в С++ Даны натуральное число N и последовательность A1,...


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

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

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