Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 16.10.2016
Сообщений: 53
1

Посчитать пробелы в строке

01.12.2016, 11:29. Показов 2518. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include"Classes.h"
int main()
{
                 setlocale(LC_ALL,"russian");
    cout << "Welcome to II !\n";        
                cout << "Справка: первые 2 символа - команда,\n";
                cout << "следующие 3 - значение.\n";
                string str2;
                string str3;
  string str;               
                cin >> str;
            str3 = str.substr(0, 4);
            str2 = str.substr(4, 1000);
    if (str3 == "read")
cout << str2;
    }
Пробелы не считают , как исправить?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2016, 11:29
Ответы с готовыми решениями:

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

Удалить в строке все лишние пробелы, то есть серии подряд идущих пробелов заменить на одиночные пробелы
Я уже решал эту задачу с помощью циклов и символьных массивов, и выкладывал на этот форум , но я не...

Посчитать пробелы, символы табуляции и новой строки
Напишите программу, подсчитывает пробелы, символы табуляции и новой строки во входной...

Пробелы в строке
Доброй ночи. Ребята со всем голова не работает - у меня задача Вставить в слово пробел после...

6
21 / 21 / 8
Регистрация: 07.08.2015
Сообщений: 48
01.12.2016, 11:43 2
C++
1
2
3
char str[21];
 
cin.getline(str, 20);
Пожалуйста, форматируйте код
0
0 / 0 / 0
Регистрация: 16.10.2016
Сообщений: 53
01.12.2016, 12:05  [ТС] 3
Если бы я хотел увидеть это:
char str[ 21 ] ;
cin. getline( str, 20 ) ;
то я бы гуглил(что я и сделал до этого)
Конкретно для своего случая есть решение , желательно без изменения кода?
0
21 / 21 / 8
Регистрация: 07.08.2015
Сообщений: 48
01.12.2016, 12:28 4
mrzhnex, попробуйте использовать мою функцию. Она считывает строку с пробелами, пока не встретится конец строки и возвращает её в типе string.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//функция возвращает строку с пробелами
string get_string() 
{
    string str = "";
    while (true)
    {
        char ch = cin.get();
        if (ch != '\n')
            str += ch;
        else
            break;
    }
 
    return str;
}
0
0 / 0 / 0
Регистрация: 16.10.2016
Сообщений: 53
01.12.2016, 12:45  [ТС] 5
Дело в том, что я использую такие функции неспроста:
C++
1
2
str3 = str.substr(0, 4);
            str2 = str.substr(4, 1000);
Я "делю" одну строчку на две:
от 0 символа до 4 и от 5 до 1000(неважно).
Не использовать str.substr я не могу, по другому никак.
0
21 / 21 / 8
Регистрация: 07.08.2015
Сообщений: 48
01.12.2016, 12:49 6
mrzhnex, я правильно понял, что у вас проблема во вводе данных ? И при использовании cin он у вас не учитывает пробелы в строке. Если да, то можно слегка доработать ваш код следующим образом:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "Classes.h"
 
//функция возвращает строку с пробелами
string get_string();
 
int main()
{
    setlocale(LC_ALL, "russian");
 
    cout << "Welcome to II !\n";        
    cout << "Справка: первые 2 символа - команда,\n";
    cout << "следующие 3 - значение.\n";
 
    
    string str;  
    string str2;
    string str3;
        
    str = get_string();
    
    str3 = str.substr(0, 4);
    str2 = str.substr(4, 1000);
 
    if (str3 == "read")
        cout << str2;
}
 
string get_string() 
{
    string str = "";
    while (true)
    {
        char ch = cin.get();
        if (ch != '\n')
            str += ch;
        else
            break;
    }
 
    return str;
}
0
Любитель чаепитий
3560 / 1666 / 513
Регистрация: 24.08.2014
Сообщений: 5,640
Записей в блоге: 1
01.12.2016, 13:20 7
Лучший ответ Сообщение было отмечено mrzhnex как решение

Решение

Цитата Сообщение от mrzhnex Посмотреть сообщение
C++
1
cin >> str;
Заменить на std::getline( std::cin, str );

Добавлено через 10 минут
Цитата Сообщение от mrzhnex Посмотреть сообщение
C++
1
str.substr(4, 1000);
Кстати, чтобы считать от какого-то символа до конца строки, нужно просто указать только первый аргумент.
C++
1
str.substr(4);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2016, 13:20

Помощь в написании контрольных, курсовых и дипломных работ здесь.

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

Посчитать пробелы в строке
Ребята можете написать задачу? просто нужно ввести строку пользователю с клавы а программа должна...

Как удалить все пробелы в строке, и если есть кавычки, то между ними пробелы заменить на %
Как удалить все пробелы в строке, и если есть кавычки, то между ними пробелы заменить на %? Вот...

Посчитать пробелы в файле
Напишите программу которая посчитает пробелы в файле с текстом. (текст уже в файле)

Текст в Pacsal и посчитать пробелы
Хай всем. вобшем делаю лабу одно задание зделал а со вторым в тупик=( Разделе: Сохранить текст в...

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


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

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

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