На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> Split - разделить строку
    Katerina1993 вы с этого начинайте, со студии 2008, тогда конечно и мой код не рабочий.

    напишите сами функцию сплит

    ExpandedWrap disabled
      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)));
          }
      }
      Цитата Katerina1993 @
      Для разбивки строки нужен свой метод который есть в языке С#, а в С++ нет.

      Нет, потому что этот split довольно неэффективная штука, соответственно он мало кому пригодится. Ести функция strtok


      Цитата Katerina1993 @
      У меня была такая идея поставить 2010 года, даже копия есть, но я не уверена,

      Это хорошая идея, поставь. Тем более они могут стоять одновременно
        Цитата Katerina1993 @
        Не работает
        ExpandedWrap disabled
          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"

        Должно быть как-то так:
        ExpandedWrap disabled
          clue_window->label1->Text = gcnew System::String(target);


        Добавлено
        Цитата Олег М @
        Это хорошая идея, поставь. Тем более они могут стоять одновременно

        А я думаю, это очень плохая идея.
        У студента проблемы с синтаксисом С и вообще с самыми основами, а ты предлагаешь
        в качестве помощи начать сносить и переустанавливать софт.
        Если решение задачи вроде "перебрать символы в строке" зависит от версии студии,
        то такое решение не выглядит очень разумным.
        Сообщение отредактировано: ЫукпШ -
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0232 ]   [ 17 queries used ]   [ Generated: 23.04.24, 18:58 GMT ]