1 / 1 / 0
Регистрация: 09.01.2018
Сообщений: 12
1

Определить, есть ли в строке подряд идущие пробелы, количество которых совпадает с введённым числом

29.11.2018, 12:33. Показов 2480. Ответов 6

Доброго времени суток!

Подобные темы по поиску листал, ответ так и не смог найти.

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

Получилось вот так:

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
42
43
44
45
#include <string.h> 
#include <cstring>
#include <iostream> 
using namespace std;
 
int main()
{
   
    int r;
    int countTemp = 0;
    int countSpaces = 0;
    string ar;
  
    getline(cin, ar);
    cin >> r;
    
    cout<< "String is:\"" << ar <<"\"\n";
 
    int size_str = ar.length();
    for(int i=0; i <= size_str + 3; i++)
    {
        cout << size_str << endl;
        if(ar[i]==' ')
        {
            countSpaces++;
            if(ar[i] && ar[++i] == ' '){
                
                while(ar[i] && ar[++i]==' '){
                    countTemp++;
                    cout << countTemp;
                }
                countTemp += 1;
            }   
            
        }
    }
    if(r == countTemp){
        cout << "Your number and the cpaces are equals. Spaces: " << countTemp;
    }
    else{
        cout << "Spaces: " << countSpaces;
    }
 
    return 0;
}

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

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

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

Заменить в строке подряд идущие пробелы на один
нужна помощь в написание программы Вводиться строка если в ней 2 и более пробела рядом надо...

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

В символьной строке удалить все лишние подряд идущие пробелы
Помогите написать программу. Все изменения строки производить в том же массиве. Не допускается...

6
Нарушитель
8512 / 4528 / 1047
Регистрация: 12.03.2015
Сообщений: 21,294
29.11.2018, 13:09 2
Цитата Сообщение от mrpes Посмотреть сообщение
Как быть?
Воспользоваться отладчиком. Делов на 30 секунд.
1
266 / 81 / 18
Регистрация: 05.04.2018
Сообщений: 1,093
Записей в блоге: 1
29.11.2018, 13:12 3

Не по теме:

Цитата Сообщение от Verevkin Посмотреть сообщение
Воспользоваться отладчиком.
тоже самое хотел написать.


Цитата Сообщение от mrpes Посмотреть сообщение
По результату работы складывается ощущение,
когда так происходит, проверяйте отладчиком.
1
1 / 1 / 0
Регистрация: 09.01.2018
Сообщений: 12
29.11.2018, 13:28  [ТС] 4
Чувствую себя ужасно тупым, но не понимаю, как с ним работать :С
0
Нарушитель
8512 / 4528 / 1047
Регистрация: 12.03.2015
Сообщений: 21,294
29.11.2018, 13:31 5
Цитата Сообщение от mrpes Посмотреть сообщение
Чувствую себя ужасно тупым, но не понимаю, как с ним работать :С
на ютубе полно видеоуроков. Посмотри парочку - отпустит.
1
266 / 81 / 18
Регистрация: 05.04.2018
Сообщений: 1,093
Записей в блоге: 1
29.11.2018, 13:45 6
Лучший ответ Сообщение было отмечено mrpes как решение

Решение

Цитата Сообщение от mrpes Посмотреть сообщение
но не понимаю, как с ним работать :С
ставишь точку в нужном тебе месте. Запускаешь дебагер. Клавишами ф10, ф11 проходишь по программе (если Visual Studio у тебя). И смотришь как работает твоя программа, какие значения принимают твои переменные и пр. Очень нужная и полезная штука, чем быстрее освоишь, тем проще учеба пойдет.
Да и инфы в сети большое множество, потрать 15 минут. На ютубе есть хорошие ролики, там все просто, учить то ничего не нужно.

Добавлено через 12 минут
mrpes,
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
#include <iostream> 
using namespace std;
 
int main()
{
   
    int r;
    int countSpaces = 0;
    string ar;
  
    getline(cin, ar);
    cin >> r;
    
    cout<< "String: " << ar << endl;
 
    int size_str = ar.length();
    
    for(int i=0; i <= size_str; i++)
    {        
        if(ar[i]==' ') {
            ++countSpaces;            
        }
    }
    if(r == countSpaces){
        cout << "Your number and the cpaces are equals. Spaces: " << countSpaces;
    }
    else{
        cout << "Spaces: " << countSpaces;
    }
 
    return 0;
}
1
1 / 1 / 0
Регистрация: 09.01.2018
Сообщений: 12
29.11.2018, 13:56  [ТС] 7
Джон Кофи, благодарю) А про отладку читаю, я не просто дожидался, пока кто-то решит.


Ещё раз спасибо всем, кто участвовал)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2018, 13:56
Помогаю со студенческими работами здесь

В символьной строке удалить все лишние подряд идущие пробелы.
Помогите пожалуйста написать программу,Каким образом можно осуществить: В символьной строке удалить...

В символьной строке удалить все лишние подряд идущие пробелы.
помогите пожалуйста написать программу:В символьной строке удалить все лишние подряд идущие пробелы.

В заданной строке заменить подряд идущие пробелы на один пробел
Написать программу: В заданной строке заменить подряд идущие пробелы на один пробел

Написать функцию, заменяющую в символьной строке подряд идущие пробелы на один пробел
Написать функцию, заменяющую в символьной строке подряд идущие пробелы на один пробел.

Написать функцию, заменяющую в символьной строке подряд идущие пробелы на один пробел
Написать функцию, заменяющую в символьной строке подряд идущие пробелы на один пробел.

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru