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

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

Войти
Регистрация
Восстановить пароль
 
Ded_Vasilij
 Аватар для Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
#1

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

11.11.2012, 18:42. Просмотров 1008. Ответов 3
Метки нет (Все метки)

Для каждого символа латинского алфавита найдите число его вхождений в строку (можно придумать алгоритм, работающий за линейное время от длины строки).
Пока мыслей нет. Непонятно с чем сравнивать. По ASCII коду понятно, но как придумать линейный алгоритм?
я понимаю, что результатом будет целочисленный массив длины 26. Но еще пока плохо понимаю как это все работает. Был бы это паскаль - написал бы в лет. а здесь еще не знаю всех особенностей языка. Подскажите с чего начать. Если можно с комментариями типа "что происходит здесь"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2012, 18:42     Подсчет вхождений символа в строку
Посмотрите здесь:

Подсчет колличества вхождений буквы в строку C++
C++ Определить число вхождений символа в предложение
Подсчитать количество вхождений каждого символа в строку C++
Для каждого символа исходной строки найти число вхождений его в строке C++
Функция подсчитывающая число вхождений в строку заданного символа C++
Определить количество вхождений каждого символа в строке C++
C++ Найти в матрице количество вхождений заданного символа
C++ Посчитать количество вхождений заданного символа в строке, введённой пользователем
Подсчитать в тексте количество вхождений определенного символа C++
Создайте функцию, вычисляющую количество вхождений символа «А» в заданный массив символов длины N C++
C++ Strchr(), Найти суммарное количество вхождений символа в заданный массив символов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexcoder
1444 / 658 / 87
Регистрация: 03.06.2009
Сообщений: 3,380
Завершенные тесты: 1
12.11.2012, 13:12     Подсчет вхождений символа в строку #2
C++
1
2
3
4
5
6
7
8
9
10
11
int nums[26];
char str[256];
for(int i=0;i<26;i++)nums[i]=0;
for(int i=0;str[i]!=0;i++)
{
 if(isalpha(str[i]))
 {
  int a=str[i]&0xdf-'A';
  nums[a]++;
 }
}
Это набросок! Не проверял!
Ded_Vasilij
 Аватар для Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
12.11.2012, 18:16  [ТС]     Подсчет вхождений символа в строку #3
все понятно благодарю. Единственное, это не понял что такое
C++
1
int a=str[i]&0xdf-'A';
конкретно
C++
1
&0xdf-'A';
Объясни, если не сложно пожалуйста
alexcoder
1444 / 658 / 87
Регистрация: 03.06.2009
Сообщений: 3,380
Завершенные тесты: 1
14.11.2012, 20:33     Подсчет вхождений символа в строку #4
&0xdf - преобразование буквы к верхнему регистру
&0xdf-'A' получить индекс буквы в алфавите.
Букве А будет соответствовать 0
В - 1
С - 2
...
Yandex
Объявления
14.11.2012, 20:33     Подсчет вхождений символа в строку
Ответ Создать тему
Опции темы

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