Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/41: Рейтинг темы: голосов - 41, средняя оценка - 4.71
ксения.

Как разбить строку на вектор из строк?

05.12.2010, 18:11. Показов 7871. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Хочу написать программу, которая текст преобразует в вектор,каждый элемент которого-отдельное слово. Создаю два объекта string s(собственно,текст) и s2. Дальше следующий код:

C++
1
2
3
4
5
6
7
8
9
10
11
    string::iterator cur,next;
    string::iterator it;
    cur=s.begin();
    for(it=s.begin();it<s.end();it++)
    {
        next=find(cur,s.end(),' ');
        copy(cur,next,inserter(s2,s2.begin()));
        v.insert(v.end(),s2);
        cur=next;
        s2.clear();
    }
Записываю кусок из текста в отдельную строку,которую заношу в вектор, как отдельный элемент. Но в результате, 1й элемент вектора записывается, как надо, дальше-пустота. Очевидно это из-за clear(). Если его убрать-первое слово записывается во все элементы контейнера. Непонятен этот момент, как перезаписать s2?
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.12.2010, 18:11
Ответы с готовыми решениями:

Как разбить строку на массив из строк по 2 символа?
У меня есть строка из 14 символов. Подскажите понятно, пожалуйста, как разбить её на массив по 2 символа?

Как разбить одну строку на несколько строк?
Сформулирую проще Нужно сделать запрос, который бы строку 'Маша Петя Вася Тимофей Колян' преобразовал бы в несколько строк Маша ...

Как проще всего разбить строку на ряд строк по разделителю?
Пусть например есть строка &quot;abc;dasfadfa;asfadsfv&quot;. Надо разбить ее соответственно на 3 строки по разделителю &quot;;&quot;. Как это...

2
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
05.12.2010, 19:07
всё гораздо проще:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
#include <iterator>
#include <sstream>
 
int main()
{    
   std::string line;
   std::getline(std::cin, line);
   std::istringstream iss(line);
   std::vector<std::string> v( (std::istream_iterator<std::string>(iss)), 
                    std::istream_iterator<std::string>());    
   //...
   return 0;
}
либо можете воспользоваться этой нехитрой функцией
1
ксения.
05.12.2010, 19:57
Спасибо, но я же учусь...мне важно понять,почему не получается таким способом,что здесь неправильно...

Написала так:
C++
1
2
3
4
5
6
7
8
        while(next!=s.end())
        {
            next=find(cur,s.end(),' ');
            copy(cur,next,inserter(s2,s2.end()));
            v.insert(v.end(),s2);
            cur=next;
            s2.clear();
        }
Теперь,когда включается программа-просто мигает курсор,весь текст,который я хочу вывести на экран после этих вычеслений,на экран не выводится...Не пойму, в чем дело...
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.12.2010, 19:57
Помогаю со студенческими работами здесь

Разбить строку чисел в вектор
Здравствуйте. Требуется написать программу, которая считывает строку чисел разделенных пробелами. Разбить эту строку в вектор по пробелу. ...

Как разбить длинную строку заголовка на несколько строк используя CSS
Приветствую уважаемых знатоков! Только начал изучать HTML и CSS поэтому не взыщите за нубские вопросы.:) В общем-то весь вопрос в...

разбить строку на несколько строк
Всем привет, у меня проблема с разитием строк на подстроки. Есть строка, размер произвольный, нужно циклом пройтись и каждые 512 символов...

Разбить строку на массив строк
Доброго времени суток всем кто обратил внимание на данную тему. Помогите пожалуйста. Есть строка: Надо эту строку разбить на...

Разбить строку на массив строк
Как реализовать задачу: дана строка, необходимо ее разбить на слова по разделителю


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru