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

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

Войти
Регистрация
Восстановить пароль
 
Vlad_fractal
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 78
#1

Строки, подсчёт букв - C++

12.11.2013, 12:14. Просмотров 408. Ответов 9
Метки нет (Все метки)

Задание посчитать кол-во букв i в строке.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream.h>
#include <string.h>
main()
{
int x;
char s[100];
cout<<"Vvedite stroku: ";
cin>>s;
for(int y=0; y<strlen(s); y++)
{
if(s[y]=='i'||s[y]=='I')
x++;
}
cout<<"Bukva 'i' vstretilas "<<x<<" raz";
}
Компилируется нормально. Но значение выдаёт 1614. Где, в коде, ошибка? Проверьте пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 12:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки, подсчёт букв (C++):

Подсчёт слов в строке. Подсчёт символов в словах строки - C++
Начал изучение строк в С++. Решая задачу по поиску количества строк и количеству указанных символов упёрся лбом в стену. Теорию понял:...

Подсчёт букв. Перевести с Pascal - C++
Как бы переделать под С++, вот эту прогаммку, взятую отсюда: http://www.cyberforum.ru/turbo-pascal/thread1091742.html Program...

Строки. Подсчитать количество заглавных букв в тексте; вывести на экран слова, имеющие наименьшее количество букв... (подправить) - C++
Дано задачу: С клавиатуры вводится строка. Составить программу, которая подсчитывает количество заглавных букв в тексте; выводит на...

Из символов введенной строки сформировать две строки - из цифр и букв - C++
Здраствуйте, помогите пожалуйста с задачей, надо из символов введенной строки сформировать две строки - из цифр и букв

Последовательность из цифр, букв и знаков. Подсчитать чего больше и составить строки только из цифр, букв и знаков - C++
Дана последовательность состоящая из цифр, букв и знаков пунктуации в произвольном порядке. Подсчитать чего больше и составить строки...

Дана строка с набором случайных символов, при вводе 10 букв первые 5 букв становятся большими , вторые 5 букв маленькими - C++
Дана строка с набором случайных символов, при вводе 10 букв первые 5 букв становятся большими , вторые 5 букв маленькими .Если непонятно то...

9
Ilot
Модератор
Эксперт С++
1820 / 1178 / 232
Регистрация: 16.05.2013
Сообщений: 3,115
Записей в блоге: 5
Завершенные тесты: 1
12.11.2013, 12:16 #2
C++
1
int x = 0;
1
Vlad_fractal
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 78
12.11.2013, 12:20  [ТС] #3
Точно, спасибо, теперь лучше.
Вот только всё-равно не верно. Считает буквы i только в первом слове, остальные игнорирует. Как быть?
0
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
12.11.2013, 12:23 #4
cin.getline(s, 100); вместо cin>>s;
0
Ilot
Модератор
Эксперт С++
1820 / 1178 / 232
Регистрация: 16.05.2013
Сообщений: 3,115
Записей в блоге: 5
Завершенные тесты: 1
12.11.2013, 12:24 #5
Используйте класс string. Вы же его подключили зачем-то...
Проблема в том, что поток расценивает пробел как символ конца потока и в массив помещается только первое слово.
cin.getline(s, 100); вместо cin>>s;
А если пользователь введет более 100 элементов? В таком случае все равно придется считывать до признака окончания потока.
1
Vlad_fractal
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 78
12.11.2013, 12:28  [ТС] #6
Понял, спасибо.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.11.2013, 12:32 #7
Цитата Сообщение от Ilot Посмотреть сообщение
поток расценивает пробел как символ конца потока
не символ конца потока, а, скорее, разделитель. Там может быть и tab и перевод строки.
1
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
12.11.2013, 12:35 #8
Цитата Сообщение от Ilot Посмотреть сообщение
А если пользователь введет более 100 элементов? В таком случае все равно придется считывать до признака окончания потока.
Дак у него s объявлен как char[100];
0
Ilot
Модератор
Эксперт С++
1820 / 1178 / 232
Регистрация: 16.05.2013
Сообщений: 3,115
Записей в блоге: 5
Завершенные тесты: 1
12.11.2013, 12:49 #9
Цитата Сообщение от Tulosba Посмотреть сообщение
не символ конца потока, а, скорее, разделитель. Там может быть и tab и перевод строки.
Имелось ввиду, что операция >> будет заносить данные из потока пока не встретит символ окончания потока или символ расцениваемый как таковой. А то что в буфере остаются данные никто же и не возражает.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.11.2013, 13:01 #10
Цитата Сообщение от Ilot Посмотреть сообщение
будет заносить данные из потока пока не встретит символ окончания потока
не окончание потока, а разделитель. Раз-де-ли-тель
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 13:01
Привет! Вот еще темы с ответами:

Удаление заглавных букв из строки - C++
Помогите, пожалуйста, написать программу: &quot;Удалить из введенной пользователем строки все заглавные буквы.&quot; Заранее большое...

Проверка строки на наличии букв - C++
Вообщем задача состоит в том, что мне нада сделать структуру паспорта, вести имя, фамилию и.т.д., это я сделал, но вот появилась...

Удаление определенных букв из строки - C++
Доброго времени суток! Помогите, пожалуйста, с заданием! Буду очень благодарен! Дано задание: написать функцию, чтобы из строки,...

Строки(исключить группу букв) - C++
В заданной строке символов исключить все группы символов вида АВС. Помогите, буду очень благодарна)


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
12.11.2013, 13:01
Ответ Создать тему
Опции темы

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