Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.125.2] |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Katerina1993 вы с этого начинайте, со студии 2008, тогда конечно и мой код не рабочий.
напишите сами функцию сплит void GetSplitStrings(std::string s, std::vector<std::string>& v_s) { unsigned int begin = 0xFFFFFFFF; unsigned int i = 0; for (i; i<s.length(); i++) { if (begin == 0xFFFFFFFF && s[i] != ' ') begin = i; if (begin != 0xffffffff && s[i] == ' ') { v_s.push_back(s.substr(begin, (i-begin))); begin = 0xffffffff; } } if (begin < i) { v_s.push_back(s.substr(begin, (i - 1))); } } |
Сообщ.
#17
,
|
|
|
Нет, потому что этот split довольно неэффективная штука, соответственно он мало кому пригодится. Ести функция strtok Это хорошая идея, поставь. Тем более они могут стоять одновременно |
Сообщ.
#18
,
|
|
|
Цитата Katerina1993 @ Не работает for(size_t i=0;;++i) { int iRetC = split(target,pSource,0,'|',i); if(iRetC < 0) break; clue_window->label1->Text = gcnew System::String(iRetC[0].c_str()); } Тяжёлый случай. Результат преобразования находится в target. И это массив байт, а не массив строк. ----- Если взять исходную строку "111|222|333", то в target последовательно в цикле будут находиться "111", "222", "333" Должно быть как-то так: clue_window->label1->Text = gcnew System::String(target); Добавлено Цитата Олег М @ Это хорошая идея, поставь. Тем более они могут стоять одновременно А я думаю, это очень плохая идея. У студента проблемы с синтаксисом С и вообще с самыми основами, а ты предлагаешь в качестве помощи начать сносить и переустанавливать софт. Если решение задачи вроде "перебрать символы в строке" зависит от версии студии, то такое решение не выглядит очень разумным. |