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

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

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

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

14.11.2012, 22:32. Просмотров 2132. Ответов 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 кончилась пробная версия, просит регистрационный ключ. Я почитал где-то на форуме, что регистрация бесплатна, и через нее получают ключ, однако я зарегался, попал на учетную запись, и никакого ключа там не нашел Не подскажите, как поступить в данной ситуации? Учиться жуть как хочется))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2012, 22:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчитать в строке количество пробелов и символов (C++):

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

Подсчитать количество пробелов в строке - C++
Подсчитать количество пробелов в строке. Добавлено через 3 минуты Я знаю что тут нужно будет пользоваться !isdigit чтобы не считало...

Подсчитать количество пробелов в строке - C++
Задание : Вводится строка. Подсчитать количество пробелов в строке. Не понимаю как мне счетчик завести. Нужно 2 варианта решения...

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

Подсчитать количество пробелов в строке - C++
Подсчитать количество пробелов в строке Через массив #include &lt;iostream&gt; using namespace std; int main() { char str; ...

Подсчитать наибольшее количество идущих подряд пробелов в строке - C++
Здраствуйте, помогите написать код к такой задаче: Дана строка символов S. а) Подсчитать наибольшее количество идущих подряд пробелов....

7
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() больше нигде прописывать не надо.
1
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
14.11.2012, 22:37 #3
Цитата Сообщение от Noobass Посмотреть сообщение
И кстати, у меня еще один вопрос. У меня на Microsoft Visual C++ Studio 2008 кончилась пробная версия, просит регистрационный ключ.
Бесплатна только Express версия продукта. Можно скачать прямо с сайта мелкософта.
Цитата Сообщение от Noobass Посмотреть сообщение
Почему в теле цикла, в самом конце еще раз используется оператор ввода
чтобы считать следующий символ.
1
Mgauk
27 / 27 / 1
Регистрация: 03.01.2011
Сообщений: 85
14.11.2012, 22:38 #4
Программа обрабатывает строку посимвольно. Если вы вводите "Hello, World.", то на первой итерации цикла обрабатывается буква H, остальная часть строки остаётся в буфере ввода и cin.get(ch) внутри цикла на каждой итерации забирает из буфера ввода очередной символ.

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

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

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

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

Цитата Сообщение от Noobass Посмотреть сообщение
у меня итак Express версия, но все равно пробная Оо...
Пробная она до тех пор, пока вы ее не зарегистрируете. (это бесплатно)
1
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
14.11.2012, 22:52 #7
Цитата Сообщение от Noobass Посмотреть сообщение
и не вернется обратно досчитать строку, я правильно понял?
ага, поэтому если первый символ ch!= '.', то цикл зациклиться, т.к. значение ch изменяться не будет.
Цитата Сообщение от Noobass Посмотреть сообщение
у меня итак Express версия, но все равно пробная Оо...
Скачайте более новую версию (2010 или 2012). Мелкософт имеет привычку отказываться от поддержки старых продуктов.
1
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
14.11.2012, 23:03  [ТС] #8
а все, разобрался спасибо за консультации))
0
14.11.2012, 23:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2012, 23:03
Привет! Вот еще темы с ответами:

Определить количество пробелов в строке длинной 20 символов - C++
Всем hello!!! Помогите разработать программу для определения количества пробелов в строке длинной 20 символов??? Зарание благодарен!!!:))))

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

Функция, определяющая количество символов в строке без учета пробелов - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;cstring&gt; using...

Подсчитать количество символов в строке - C++
Помогите пожалуйста решить 1. Подсчитать количество символов в строке.


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

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

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