Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
lrf
0 / 0 / 0
Регистрация: 02.03.2014
Сообщений: 26
24.04.2014, 21:07     Удалить из строки все пробелы, расположенные перед знаком препинания #1
Дана строка до точки, группа символов в которой между пробелами считается словом,
знаки препинания от слова пробелом не отделяются.

Удалить из строки все пробелы, расположенные перед знаком препинания.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2014, 21:07     Удалить из строки все пробелы, расположенные перед знаком препинания
Посмотрите здесь:

удалить из заданной строки все группы символов, расположенные между скобками, включая сами скобки C++
C++ Строки: удалить все пробелы
C++ Строки: уничтожить в строке запятые перед первой точкой, заменить знаком + все цифры 3я после первой точки
C++ Строки. Удалить все пробелы
Удалить из строки все пробелы, расположенные перед знаком препинания C++
Удалить из строки все пробелы, расположенные перед знаком препинания C++
C++ В строке заменить все знаки препинания на пробелы. Вывести результат
C++ Удалить из массива все элементы, расположенные перед максимальным элементом массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 201
25.04.2014, 11:37     Удалить из строки все пробелы, расположенные перед знаком препинания #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <string>
#include <iostream>
 
bool isPunctuation(char ch)
{
    std::string str;
    str = ch;
    return (str.find_first_of(".,!?[]\"") != std::string::npos);
}
 
int main()
{
    std::string str = "asdsad , asdsdsd . ";
    size_t pos = str.find(" ");
    while(pos != std::string::npos) {
        if((pos + 1) < str.length()){
            if(isPunctuation(str[pos + 1])) {
                str.erase(pos, 1);
            }
        }
        pos = str.find(" ", pos + 1, 1);
    }
}
Добавлено через 4 минуты
или так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <string>
#include <iostream>
 
int main()
{
    std::string str = "asdsad , asdsdsd . ";
    std::string punctuation = (".,!?[]\"");
    size_t pos = str.find_first_of(punctuation);
    while(pos != std::string::npos) {
        if(pos > 0) {
            if(str[pos - 1] == ' ') {
                str.erase(pos - 1, 1);
            }
        }
        pos = str.find_first_of(punctuation.c_str(), pos + 1, 1);
    }
}
Yandex
Объявления
25.04.2014, 11:37     Удалить из строки все пробелы, расположенные перед знаком препинания
Ответ Создать тему
Опции темы

Текущее время: 21:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru