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

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

Войти
Регистрация
Восстановить пароль
 
Marinalol
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 16
#1

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

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

Помогите пожалуйста!!!
Убрать лишние пробелы, оставить по одному пробелу между слов. (С++)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2016, 21:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Убрать лишние пробелы, оставить по одному пробелу между слов (C++):

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

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

Убрать в текстовом файле ненужные пробелы, оставив между словами по одному, между предложениями по два. - C++
Мое задание: убрать в текстовом файле ненужные пробелы, оставив между словами по одному, между предложениями по два. Вот программа...

Убрать лишние пробелы - C++
отформотировать строку 1)убрать все лишние пробелы 2) убрать 1 пробел после знака препинания ПЕРВУЮ ЗАДАЧУ РЕШИЛ . ...

Удалить из текста лишние пробелы (из нескольких подряд идущих пробелов оставить только один) - C++
Вывести на экран заданный текст, удалив из него лишние пробелы, т.е. из нескольких подряд идущих пробелов оставить только один. При...

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

9
Fixer_84
639 / 445 / 220
Регистрация: 30.04.2016
Сообщений: 1,282
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
amaralikyr
61 / 61 / 23
Регистрация: 18.09.2015
Сообщений: 200
Завершенные тесты: 1
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
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,596
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
Marinalol
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 16
06.12.2016, 20:47  [ТС] #5
Fixer_84, мне нужно чтоб брал текст с одного файла, а проделанное изменение уже с текстом записывал в другой файл, не могли бы помочь как это сделать в программе, что нужно написать?
0
Fixer_84
639 / 445 / 220
Регистрация: 30.04.2016
Сообщений: 1,282
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
Marinalol
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 16
07.12.2016, 20:21  [ТС] #7
Fixer_84, а вы блок-схемы рисуете?
0
Fixer_84
639 / 445 / 220
Регистрация: 30.04.2016
Сообщений: 1,282
07.12.2016, 21:20 #8
Marinalol, здравствуйте. К сожалению, нет Но могу посоветовать хороший soft для автоматического построения.

Добавлено через 5 минут
Marinalol, прошу прощения. То, что хотел предложить работает только для C# и Pascal. Для С++ надо искать.
0
Marinalol
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 16
07.12.2016, 21:27  [ТС] #9
Fixer_84, Спасибо )
0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,596
08.12.2016, 00:05 #10
Цитата Сообщение от Fixer_84 Посмотреть сообщение
Для С++ надо искать
С автогенерацией у плюсов всё плохо (во всяком случае, из фришного). Студия умеет худо-бедно диаграмму классов рисовать, а вот алгоритмы руками.
Из софта могу назвать MS Visio и DiagramDesigner (местная софтина).
0
08.12.2016, 00:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2016, 00:05
Привет! Вот еще темы с ответами:

Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу. - C++
String11. Дана непустая строка S. Вывести строку, содержащую символы стро-ки S, между которыми вставлено по одному пробелу.Помогите...

Отформатировать текст: каждое предложение с новой строки, между словами - по одному пробелу - C++
Задача: Дан текстовый файл. Переписать его текст в новый файл таким образом, чтобы каждое предложение начиналось с новой строки и между...

Вывести строку, содержащую символы строки S, между которыми вставлено по одному пробелу - C++
Помогите пожалуйста решить эту задачу на С++. Дана непустая строка S. Вывести строку, содержащую символы строки S, между которыми...

Вывести строку, содержащую символы заданной строки, между которыми вставлено по одному пробелу - C++
Что то вот на решал, немного вроде не так посмотрите оцените пожалуйста; /* Дана непустая строка S . Вывести строку, содержащую символы...


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

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

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