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

Функции-члены std::string - finde_first_of() и finde_first_not_of() - C++

Восстановить пароль Регистрация
 
Aleks_Tret
9 / 9 / 6
Регистрация: 25.10.2014
Сообщений: 52
14.03.2016, 13:02     Функции-члены std::string - finde_first_of() и finde_first_not_of() #1
Помогите пожалуйста увидеть мне, мою ошибку.
Я написал
Кликните здесь для просмотра всего текста

http://cpp.sh/7szcv
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <iterator>
 
using std::string;
 
int main()
{
    std::stringstream myStream;
    myStream << std::string("first second.thrid;fourth\tfifth");
    string line;
    while (std::getline(myStream, line));
    std::vector<string> myV;
    string delim(",.:; \t");
    string::size_type begIdx{}, endIdx{};
    
    begIdx = line.find_first_not_of(delim);
    while (begIdx != string::npos) {
        endIdx = line.find_first_of(delim, begIdx);
        if (endIdx == string::npos)
            endIdx = line.length();
        myV.push_back(line.substr(begIdx, endIdx));
        begIdx = line.find_first_not_of(delim, endIdx);
    }
    //Некоретно работает find_first_of ???
    
    std::copy(myV.cbegin(), myV.cend(),
        std::ostream_iterator<string>(std::cout, "*"));
}

В потоке вывода я хотел получить : first*second*third*fourth*fifth*
А получаю : first*second.thrid*thrid;fourth fifth*fourth fifth*fifth*

Где я ошибся?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2016, 13:02     Функции-члены std::string - finde_first_of() и finde_first_not_of()
Посмотрите здесь:

std::string C++
std::string -> std::wstring C++
C++ std::async std::future и функции-члены
C++ std::string + std::remove
Не существует подходящей функции для преобразования из std::string в LPCTSTR C++
C++ All_of и stoi не члены std?
Операция std::cout для Объекта типа std::string C++
отсутствует оператор "<<" соответствующий этим операндам (std::ostream << const std::string) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
meJevin
 Аватар для meJevin
153 / 145 / 56
Регистрация: 18.11.2015
Сообщений: 598
Завершенные тесты: 1
14.03.2016, 14:50     Функции-члены std::string - finde_first_of() и finde_first_not_of() #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
хммм, я ща посмотрел, кажется, что он пропускает первый найденный символ из delim.
типа, у нас есть "1/2/3/4/5" , где delim = '/', он нашел после единицы /, потом после двойки он его пропускает, но находит после тройки и т.д. ща покопаюсь, попробую узнать, что не так.

Добавлено через 16 минут
нашел!
C++
1
myV.push_back(line.substr(begIdx, endIdx-begIdx));
Добавлено через 1 минуту
строка 24 у тебя. там ты вместо длины строки будущей (что есть разность конца и начала) указал конец)
Aleks_Tret
9 / 9 / 6
Регистрация: 25.10.2014
Сообщений: 52
14.03.2016, 14:50  [ТС]     Функции-члены std::string - finde_first_of() и finde_first_not_of() #3
Спасибо огромное, без вас не смог заметить. Хорошо что можно спросить.
Я понял в чем я ошибся.
Yandex
Объявления
14.03.2016, 14:50     Функции-члены std::string - finde_first_of() и finde_first_not_of()
Ответ Создать тему
Опции темы

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