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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
#1

Подсчитать в строке количество пробелов и символов - C++

14.11.2012, 22:32. Просмотров 2065. Ответов 7
Метки нет (Все метки)

Задача: создать программу, которая позволяет ввести строку, и после считает в ней количество пробелов и символов.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
int main()
{
char ch;
int spaces=0;
int total=0;
cin.get(ch);
while(ch!= '.')
{
if(ch==' ')
spaces++;
total++;
cin.get(ch);
}
cout<<spaces<<" spaces, "<<total<<" characters total in sentence.\n";
system("pause");
return 0;
В принципе, по программе мне все ясно, кроме одного. Почему в теле цикла, в самом конце еще раз используется оператор ввода
C++
1
cin.get(ch);
??? Я никак не могу этого понять, объясните, пожалуйста.
З.Ы.: простите за столь "глупый" вопрос, но я просто хочу как можно лучше понять логику программирования. Не хочу упускать даже самые малейшие моменты, чтобы в будущем не было больших проблем. Очень прошу отнестись с пониманием.


И кстати, у меня еще один вопрос. У меня на Microsoft Visual C++ Studio 2008 кончилась пробная версия, просит регистрационный ключ. Я почитал где-то на форуме, что регистрация бесплатна, и через нее получают ключ, однако я зарегался, попал на учетную запись, и никакого ключа там не нашел Не подскажите, как поступить в данной ситуации? Учиться жуть как хочется))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2012, 22:32     Подсчитать в строке количество пробелов и символов
Посмотрите здесь:
C++ Подсчитать количество пробелов в строке
C++ Подсчитать количество пробелов в строке
C++ Подсчитать количество пробелов в строке
C++ Подсчитать количество пробелов в строке
C++ Подсчитать наибольшее количество идущих подряд пробелов в строке
C++ Определить количество пробелов в строке длинной 20 символов
Подсчитать в строке количество гласных, согласных, знаков препинания, пробелов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
polyaKIDze
63 / 63 / 12
Регистрация: 16.07.2012
Сообщений: 147
14.11.2012, 22:36     Подсчитать в строке количество пробелов и символов #2
Noobass, это посимвольное считывание.
Вот еще вариант:
C++
1
2
3
while(cin.get(ch) != '.') {
...
}
Тут перед каждой итерацией на проверке условия считывается очередной символ. В этом случае cin.get() больше нигде прописывать не надо.
Croessmah
Модератор
Эксперт CЭксперт С++
13050 / 7313 / 814
Регистрация: 27.09.2012
Сообщений: 18,050
Записей в блоге: 3
Завершенные тесты: 1
14.11.2012, 22:37     Подсчитать в строке количество пробелов и символов #3
Цитата Сообщение от Noobass Посмотреть сообщение
И кстати, у меня еще один вопрос. У меня на Microsoft Visual C++ Studio 2008 кончилась пробная версия, просит регистрационный ключ.
Бесплатна только Express версия продукта. Можно скачать прямо с сайта мелкософта.
Цитата Сообщение от Noobass Посмотреть сообщение
Почему в теле цикла, в самом конце еще раз используется оператор ввода
чтобы считать следующий символ.
Mgauk
27 / 27 / 1
Регистрация: 03.01.2011
Сообщений: 85
14.11.2012, 22:38     Подсчитать в строке количество пробелов и символов #4
Программа обрабатывает строку посимвольно. Если вы вводите "Hello, World.", то на первой итерации цикла обрабатывается буква H, остальная часть строки остаётся в буфере ввода и cin.get(ch) внутри цикла на каждой итерации забирает из буфера ввода очередной символ.

оу, пока писал, уже всё ответили )
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
14.11.2012, 22:48  [ТС]     Подсчитать в строке количество пробелов и символов #5
То есть, если я допустим уберу cin.get() в конце, то цикл прочитает один символ, и не вернется обратно досчитать строку, я правильно понял?

Добавлено через 1 минуту
Огромное спасибо))

Добавлено через 54 секунды
Цитата Сообщение от Croessmah Посмотреть сообщение
Бесплатна только Express версия продукта. Можно скачать прямо с сайта мелкософта.

чтобы считать следующий символ.
у меня итак Express версия, но все равно пробная Оо...
polyaKIDze
63 / 63 / 12
Регистрация: 16.07.2012
Сообщений: 147
14.11.2012, 22:50     Подсчитать в строке количество пробелов и символов #6
Цитата Сообщение от Noobass Посмотреть сообщение
То есть, если я допустим уберу cin.get() в конце, то цикл прочитает один символ, и не вернется обратно досчитать строку, я правильно понял?
Абсолютно верно.

Цитата Сообщение от Noobass Посмотреть сообщение
у меня итак Express версия, но все равно пробная Оо...
Пробная она до тех пор, пока вы ее не зарегистрируете. (это бесплатно)
Croessmah
Модератор
Эксперт CЭксперт С++
13050 / 7313 / 814
Регистрация: 27.09.2012
Сообщений: 18,050
Записей в блоге: 3
Завершенные тесты: 1
14.11.2012, 22:52     Подсчитать в строке количество пробелов и символов #7
Цитата Сообщение от Noobass Посмотреть сообщение
и не вернется обратно досчитать строку, я правильно понял?
ага, поэтому если первый символ ch!= '.', то цикл зациклиться, т.к. значение ch изменяться не будет.
Цитата Сообщение от Noobass Посмотреть сообщение
у меня итак Express версия, но все равно пробная Оо...
Скачайте более новую версию (2010 или 2012). Мелкософт имеет привычку отказываться от поддержки старых продуктов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2012, 23:03     Подсчитать в строке количество пробелов и символов
Еще ссылки по теме:
C++ Функция, определяющая количество символов в строке без учета пробелов
C++ Подсчитать количество символов в строке
Подсчитать непарное количество символов в строке C++
Не получается подсчитать количество символов в строке C++
C++ Подсчитать количество символов в каждой строке текстового файла

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

Или воспользуйтесь поиском по форуму:
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
14.11.2012, 23:03  [ТС]     Подсчитать в строке количество пробелов и символов #8
а все, разобрался спасибо за консультации))
Yandex
Объявления
14.11.2012, 23:03     Подсчитать в строке количество пробелов и символов
Ответ Создать тему
Опции темы

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