Как использовать функции 'find' и 'substr' с векторами? - PullRequest
0 голосов
/ 12 марта 2019

Я делаю программу, которая ищет строковый вектор для первых слов предложений. Он сохраняет первые слова в новом векторе для последующего использования. В коде allWords является результирующим вектором после чтения файла.

Содержимое allWords:

0000000    f   i   r   s   t       l   i   n   e       i   s       h   e
0000020    r   e   .  \n   s   e   c   o   n   d       l   i   n   e    
0000040    i   s       h   e   r   e       a   f   t   e   r       t   h
0000060    e       f   i   r   s   t   ?  \n   t   h   i   r   d       l
0000100    i   n   e       c   o   m   e   s       n   e   x   t   !    
0000120   \n   f   o   u   r   t   h       l   i   n   e       t   h   e
0000140    n       t   h   e  \n   .   .   .   f   i   f   t   h       i
0000160    s       t   h   e       l   i   n   e       b   e   f   o   r
0000200    e       t   h   e       s   i   x   t   h  \n   s   i   x   t
0000220    h       i   s       t   h   e       l   a   s   t       o   n

Тогда мой код, чтобы получить первое слово.

string firstWord = allWords.substr(0, allWords.find(' '));
someVector.push_back(firstWord);

Здесь я пытаюсь получить самое первое слово первого предложения, но сталкиваюсь с ошибками:

‘class std :: vector>’ не имеет члена с именем ‘find’

‘class std :: vector>’ не имеет члена с именем ‘substr’

Я просмотрел много кода, и другие люди, похоже, могут использовать хотя бы 'find' с векторами. Любые предложения о том, как это исправить, не создавая собственные функции find и substr?

1 Ответ

1 голос
/ 12 марта 2019

Вы можете написать цикл для прохождения вектора. В теле цикла вы можете работать с текущей строкой. Эти операции будут повторяться для каждой строки в векторе, если вы пройдете через весь вектор. Вы можете использовать функции-члены find и substr строки.

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