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

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

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

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

24.04.2014, 21:07. Просмотров 455. Ответов 1
Метки нет (Все метки)

Дана строка до точки, группа символов в которой между пробелами считается словом,
знаки препинания от слова пробелом не отделяются.

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

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Меорн
74 / 59 / 29
Регистрация: 01.02.2014
Сообщений: 202
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     Удалить из строки все пробелы, расположенные перед знаком препинания
Ответ Создать тему
Опции темы

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