Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
lrf
0 / 0 / 0
Регистрация: 02.03.2014
Сообщений: 26
1

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

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

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

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

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

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

Удалить из строки все знаки препинания
Пусть с клавиатуры вводятся строка и символ. Если введённый символ является...

Функция: удалить из строки все знаки препинания
12. Написать функцию, которая удаляет из строки все знаки препинания. Заголовок...

Удалить из массива все элементы, расположенные перед максимальным элементом массива
Задан целочисленный массив размера N. Удалить из массива все элементы,...

1
Меорн
76 / 61 / 45
Регистрация: 01.02.2014
Сообщений: 208
25.04.2014, 11:37 2
Лучший ответ Сообщение было отмечено lrf как решение

Решение

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);
    }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2014, 11:37

Строки: удалить все пробелы
Всем доброго времени суток. Я учусь на инженера-электрика и вообщем-то засел на...

Строки. Удалить все пробелы
Задание: Дана строка, в которой слова разделены одним пробелом и более. Удалить...

Строки: уничтожить в строке запятые перед первой точкой, заменить знаком + все цифры 3я после первой точки
Дано строка длиной n символов, среди которых есть хотя бы одна точка....


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

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

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