Сбор первых трех символов из каждой строки вниз - строки C ++ - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть строка, которая выглядит следующим образом

".V/1LBOG^"
        ".F/AV0094/08NOV/SAL/Y^"
        ".N/0134249356001^"
        ".S/Y/17K/C/064/064^"
        ".W/K/1/13^"
        ".P/TELLEZBAQUERO/XIMENABKB^"
        ".L/YAT9AP^"

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

То есть в векторном идентификаторе должно быть

0[.F/] 1[.N/] 2[.S/] 

и так далее ... Я благодарен за любую помощь.

В данный момент я использую парсер

 bool ok = qi::parse(first, last, (
          qi::raw [ '.' > qi::char_("EV") > '/' ]
        > qi::raw [ *(qi::char_ - qi::eol) ]
    ) % qi::eol,
    mappings);

Это будет собирать каждую строку по мере необходимости, но вы должны ввести букву, т. Е. V или E и т. Д. Мне нужно будет пройти через строку и получить каждую букву независимо от того.

1 Ответ

1 голос
/ 12 декабря 2011

Хорошо, если у вас есть std::vector<std::string>, это будет выглядеть так:

for (size_t i = 0; i < myvec.size(); ++i)
{
    myvec[i] = myvec[i].substr(3);
}

Я думал об использовании метода substr, но, похоже, он не работал должным образом.

Всегда пишите, почему не работал должным образом . Конечно, вы просто не использовали его должным образом. Если у вас возникли вопросы, посмотрите документацию .

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