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

Убрать лишние пробелы, оставить по одному пробелу между слов

26.11.2016, 21:49. Показов 6249. Ответов 9
Метки нет (Все метки)

Помогите пожалуйста!!!
Убрать лишние пробелы, оставить по одному пробелу между слов. (С++)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2016, 21:49
Ответы с готовыми решениями:

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

Оставить в строке по одному пробелу между словами в качестве разделителя
Программа на C++ алгоритм, помогите пожалуйста В строке — русское предложение, слова которого...

Удалить повторяющиеся пробелы между отдельными словами строки (оставляя по одному пробелу)
Введите предложение, слова в котором разделены пробелами и в конце которого стоит точка. Удалите...

Убрать все лишние пробелы между словами (оставить только по одному пробелу)
Dim St As String, Stl As String Dim P As String * 10, Sym As String * 1 Dim KR As Long, KN As...

9
1472 / 936 / 809
Регистрация: 30.04.2016
Сообщений: 3,253
26.11.2016, 22:01 2
Marinalol, вот не сложный для понимания код. Надеюсь, вы разберетесь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <cmath>
 
using namespace std;
 
int main()
{
    string s;
    getline(cin, s);
    for (int j = 0; j < s.length(); j++) 
    {
    if (s[j] == ' ') 
    {
    while (s[j+1] == ' ') s.erase(j+1, 1);
    }
    } 
    if (s[0] == ' ') s.erase(0, 1);
    if (s[s.length() - 1] == ' ') s.erase(s.length() - 1, 1);
    cout << s << endl;
    return 0;
}
1
71 / 68 / 67
Регистрация: 18.09.2015
Сообщений: 234
26.11.2016, 22:12 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    setlocale(0, "Russian");
    
    string in, out;
    getline(cin, in);
 
    for (int i = 0; i < in.length() - 1; i++)
        if (in[i] != ' ' || in[i + 1] != ' ')
            out += in[i];
 
    out += in[in.length() - 1];
 
    cout << out << endl;
 
}
1
Форумчанин
Эксперт CЭксперт С++
8165 / 5013 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
27.11.2016, 01:49 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
 
int main()
{
    const std::string s = "Eniki   beniki  eli vareniki";
    std::istringstream ist(s);
    std::copy(std::istream_iterator<std::string>(ist), std::istream_iterator<std::string>(), std::ostream_iterator<std::string>(std::cout, " "));
}
1
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 18
06.12.2016, 20:47  [ТС] 5
Fixer_84, мне нужно чтоб брал текст с одного файла, а проделанное изменение уже с текстом записывал в другой файл, не могли бы помочь как это сделать в программе, что нужно написать?
0
1472 / 936 / 809
Регистрация: 30.04.2016
Сообщений: 3,253
06.12.2016, 20:57 6
Marinalol, я сейчас все сделаю. Подождите 10 минут.

Добавлено через 5 минут
Marinalol, вот запрошенный код:

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
#include <iostream>
#include <string>
#include <fstream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    ifstream fin("input.txt");
    ofstream fout("output.txt");
    string s;
    while (getline(fin, s)) //Пробегаем по строкам файла
    {
        for (int j = 0; j < s.length(); j++) //Обрабатываем каждую строку
        {
            if (s[j] == ' ')
            {
                while (s[j + 1] == ' ')
                    s.erase(j + 1, 1); //Удаляем лишние пробелы
            }
        }
        if (s[0] == ' ')
            s.erase(0, 1); //Удаляем пробел в начале строки
        if (s[s.length() - 1] == ' ')
            s.erase(s.length() - 1, 1); //Удаляем пробел в конце строки
        fout << s << endl; //Выводим обработанные строки
    }
    fin.close();
    fout.close();
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 18
07.12.2016, 20:21  [ТС] 7
Fixer_84, а вы блок-схемы рисуете?
0
1472 / 936 / 809
Регистрация: 30.04.2016
Сообщений: 3,253
07.12.2016, 21:20 8
Marinalol, здравствуйте. К сожалению, нет Но могу посоветовать хороший soft для автоматического построения.

Добавлено через 5 минут
Marinalol, прошу прощения. То, что хотел предложить работает только для C# и Pascal. Для С++ надо искать.
0
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 18
07.12.2016, 21:27  [ТС] 9
Fixer_84, Спасибо )
0
Форумчанин
Эксперт CЭксперт С++
8165 / 5013 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
08.12.2016, 00:05 10
Цитата Сообщение от Fixer_84 Посмотреть сообщение
Для С++ надо искать
С автогенерацией у плюсов всё плохо (во всяком случае, из фришного). Студия умеет худо-бедно диаграмму классов рисовать, а вот алгоритмы руками.
Из софта могу назвать MS Visio и DiagramDesigner (местная софтина).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2016, 00:05

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Оставить между словами лишь по одному пробелу, удалив лишние. Макроопределения
Ребят, помогите исправить код. Задана строка слов. Словом считается последовательность...

В исходной строке оставить между словами лишь по одному пробелу, удалив лишние
Выручьте пожалуйста студента с контрольной по Assembler, есть 6 заданий, может у кого какие примеры...

Удалить из строки лишние пробелы, оставляя между словами только по одному пробелу
Удалить из строки лишние пробелы, оставляя между словами только по одному пробелу

Отредактировать предложение, удаляя из него лишние пробелы, оставляя по одному пробелу между словами
Отредактировать предложение, удаляя из него лишние пробелы, оставляя по одному пробелу между...


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

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

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