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

Деление строки на части по знаку препинания - C++

Восстановить пароль Регистрация
 
ANSII
 Аватар для ANSII
0 / 0 / 0
Регистрация: 01.02.2013
Сообщений: 18
17.05.2013, 14:34     Деление строки на части по знаку препинания #1
Есть строка, состоящая из нескольких слов.
C++
1
string ss = "Автор Название стоимость жанр";
При помощи этого кода она делится на слова:
C++
1
2
3
istringstream iss(ss);
while (iss >> ss) 
   cout << ss << endl;
можно ли таким же или похожим образом разделить стоку на слова не по пробелам, а по знакам препинания ';'
C++
1
string ss = "Автор;Название;стоимость;жанр";
а если еще расскажете как это работает, будет вообще замечательно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2013, 14:34     Деление строки на части по знаку препинания
Посмотрите здесь:

C++ Удалить знаки препинания из строки
деление без откидывания дробовой части C++
C++ Упорядочить строки в массиве по знаку зодиака
C++ Заменить максимальный элемент каждой строки на противоположный по знаку
Заменить все элементы k-й строки и s-го столбцаматрицы на противоположные по знаку C++
C++ Вычеркните из строки все знаки препинания (с++)
деление множество точек на две равные части C++
Удалить из строки все пробелы, расположенные перед знаком препинания C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
18.05.2013, 12:33     Деление строки на части по знаку препинания #2
С boost легко:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <vector>
#include <windows.h>
#include <boost/algorithm/string.hpp>
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
    
    std::string ss = "Автор;Название  ;  стоимость;   жанр";
    std::vector<std::string> words;
    boost::split(words, ss, boost::is_any_of(";,! "), boost::token_compress_on);
    for (const auto& i : words) std::cout<<i<<'\n';
    
    std::cout<<std::endl;
    return 0;
}
А так, пишите свою реализацию функции split (поищите на форуме, должны были писать).
Yandex
Объявления
18.05.2013, 12:33     Деление строки на части по знаку препинания
Ответ Создать тему
Опции темы

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