Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 06.03.2020
Сообщений: 24

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

06.03.2020, 19:10. Показов 4233. Ответов 15

Студворк — интернет-сервис помощи студентам
Исходный текст набран с ошибками: между некоторыми словами по
несколько пробелов. Заменить в тексте подряд идущие пробелы одним пробелом. (не
использовать find)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.03.2020, 19:10
Ответы с готовыми решениями:

На какую букву начинается больше слов в тексте Y (между словами может быть несколько пробелов). текст вводится в Edit
На какую букву начинается больше слов в тексте Y (между словами может быть несколько пробелов). текст вводится в Edit.

Дан текст, между словами один или несколько пробелов . Верно ли, что в тексте имеет по - крайней мере 3 слова, содержащий букву "т"?
Дан текст, между словами один или несколько пробелов . Верно ли, что в тексте имеет по - крайней мере 3 слова, содержащий букву...

На какую букву начинается больше слов в тексте Y (между словами может быть несколько пробелов)
Уважаемые знатоки напишите плиз лабу, а то тесты делать научился а вот со строками никак не получается(( Заранее благодарю! На какую...

15
 Аватар для Recrut_rf
388 / 333 / 65
Регистрация: 14.10.2014
Сообщений: 1,427
06.03.2020, 19:18
и что - никаких мыслей?
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
06.03.2020, 19:21
Zhanettazh, смотри ссылки внизу страницы
1
0 / 0 / 0
Регистрация: 06.03.2020
Сообщений: 24
06.03.2020, 19:24  [ТС]
написать программу "Исправление ошибок в тексте" написать слово с ошибками потом между некоторыми словами по
несколько пробелов. Заменить в тексте подряд идущие пробелы одним пробелом. ,такое задание,
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
06.03.2020, 19:26
Zhanettazh, для тех кто не умеет искать Заменить каждую последовательность, содержащую более одного пробела, на один пробел
0
 Аватар для Recrut_rf
388 / 333 / 65
Регистрация: 14.10.2014
Сообщений: 1,427
06.03.2020, 19:31
у меня кстати есть своя версия, но публиковать её я конечно же не буду...

Zhanettazh, алгоритм есть какой в голове - как это можно решить? (подсказка - нужно создать второй массив)
0
0 / 0 / 0
Регистрация: 06.03.2020
Сообщений: 5
06.03.2020, 19:34
Решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main() {
    string text;
    cin>>text;
    for (size_t i = 0; i < text.size() - 1; i++) {
        if (isspace(text[i])) {
            while (isspace( text[i + 1])) {
                text.erase(i, 1);
            }
        }
    }
    cout << text;
    return 0;
}
0
 Аватар для Recrut_rf
388 / 333 / 65
Регистрация: 14.10.2014
Сообщений: 1,427
06.03.2020, 19:37
qwx, неужто работает? а я вот сомневаюсь...
0
0 / 0 / 0
Регистрация: 06.03.2020
Сообщений: 5
06.03.2020, 19:38
Recrut_rf, А что-то не так?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
06.03.2020, 19:40
Цитата Сообщение от qwx Посмотреть сообщение
А что-то не так?
строка вводится через getline
0
0 / 0 / 0
Регистрация: 06.03.2020
Сообщений: 5
06.03.2020, 19:44
Yetty,
Цитата Сообщение от Zhanettazh Посмотреть сообщение
между некоторыми словами
поэтому после последнего слова и не проверяю. А что не так с вводом?

Добавлено через 2 минуты
Цитата Сообщение от Yetty Посмотреть сообщение
строка вводится через getline
А есть принципиальная разница как она вводится? Извиняюсь, если глупый вопрос.
0
 Аватар для Recrut_rf
388 / 333 / 65
Регистрация: 14.10.2014
Сообщений: 1,427
06.03.2020, 19:47
Цитата Сообщение от qwx Посмотреть сообщение
А есть принципиальная разница как она вводится
А что мешает запустить прогу и ввести к примеру - Hello World!

Добавлено через 13 секунд
и посмотреть на результат
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
06.03.2020, 19:49
Цитата Сообщение от qwx Посмотреть сообщение
А есть принципиальная разница как она вводится?
конечно. сin только первое слово введёт.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string> 
using namespace std;
 
int main()
{
    int i=0;
    string s;
    cout << "Text:\n";
    getline(cin, s);
    
    while (s[i])
    {
    if (s[i]==' ' && s[i+1]==' ') {s.erase(i,1); i--;}
    i++;
    }
    cout << s << "\n";
    
system("pause");
return 0;
}
0
0 / 0 / 0
Регистрация: 06.03.2020
Сообщений: 5
06.03.2020, 19:50
Recrut_rf, Yetty, спасибо. Ошибку понял,
C++
1
std::getline(cin, text);
будет правильно
0
 Аватар для Recrut_rf
388 / 333 / 65
Регистрация: 14.10.2014
Сообщений: 1,427
06.03.2020, 19:57
Лучший ответ Сообщение было отмечено Zhanettazh как решение

Решение

Цитата Сообщение от Yetty Посмотреть сообщение
строка вводится через getline
по-моему можно ещё использовать cin.get()

Добавлено через 5 минут
размещу и свой говнокод с решением

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
46
47
#include <iostream>
#include <cstring>
 
 
using namespace std;
 
/*
дана строка без предшествующих и завершающих пробелов. Слова в строке разделены
одним или несколькими пробелами. Модифицировать строку таким образом, чтобы
слова были разделены ровно одним пробелом
*/
 
 
int main()
{
    char str[100] = { 0 };
    char res[100] = { 0 };
 
    cin.getline(str, 100);
 
    int spaceCount = 0;              // счетчик пробелов
    int resIndex = 0;                // позиция в результирующей строке
 
    int len = strlen(str);
 
    for (int i = 0; i < len; i++)
    {
        if (str[i] == ' ')
        {
            ++spaceCount;
            if (spaceCount == 1)
            {
                res[resIndex++] = str[i];     // увеличиваем индекс на 1             
            }                                 // но в тоже время и обращаемся к нужному      
                                              // элементу так как увеличение будет после обращения 
        }
        else
        {
            spaceCount = 0;
            res[resIndex++] = str[i];
        }
    }
 
    cout << res << endl;
    system("pause");
    return 0;
}
1
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
06.03.2020, 21:34
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{
   char s[100]="",*p;
   string text="  abcd   kkkk  sd  ";
 
   strcpy(s, text.c_str());
   text="";
   p=strtok(s," ");
   while(p){
      text+=p;
      p=strtok(NULL," ");
      if(p!=NULL)
          text+=' ';
     }
   cout<<text;
   system("pause");
   return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2020, 21:34
Помогаю со студенческими работами здесь

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

Заменить подряд идущие пробелы на один пробел
2) В заданной строке заменить подряд идущие пробелы на один пробел (посредством цикла for).

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

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

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru