Jak wyciągnąć pierwszy wyraz ze stringa?

2013-06-13 01:20
Hattric
0

Witam,
mam stringa i chcę z niego uzyskać pierwszy wyraz. Nie wiem jakiej funkcji mogę użyć, ale szperając po necie natrafiłem na funkcję stringa jaką jest erase i sobie założyłem, że każdy pierwszy wyraz będzie 25 znakowy.

String tekst =Socket->ReceiveText();
String PierwszyWyraz=tekst;

PierwszyWyraz.erase (25,tekst.length());

Z góry dzięki za pomoc

dodanie znacznika <code class="cpp"> i tagu C++ - fp

edytowany 2x, ostatnio: furious programming, 2016-12-13 18:26

Pozostało 580 znaków

2013-06-13 01:28
1

Wyszukaj pierwszą spację i odpowiednio wytnij pierwszy wyraz:

#include <iostream>
#include <string>

int main() {
  std::string txt("ala ma kota");

  std::string first_word(txt, 0, txt.find_first_of(' '));

  std::cout << first_word;

  return 0;
}

http://ideone.com/r1jYNs

Dokumentacja pomoże Ci odkryć inne funkcje: http://en.cppreference.com/w/cpp/string/basic_string
Zapewne można to zrobić na sto innych sposobów.


"(...) otherwise, the behavior is undefined".
edytowany 2x, ostatnio: Endrju, 2013-06-13 01:33

Pozostało 580 znaków

2013-06-13 10:00
1

Lub tak:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main()
  {
   string text("ala ma kota");
   stringstream sin(text);
   string word;
   while(sin>>word)
     {
      cout<<word<<endl;
     }
   return 0;
  }

http://ideone.com/OMj9pu


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: furious programming, 2013-06-14 11:48
Poprawiłem link żeby dało się w niego kliknąć; - furious programming 2013-06-14 11:48

Pozostało 580 znaków

2013-06-13 20:19
Hattric
1

@_13th_Dragon
Zdaje mi się, że on tylko usuwa do ostatniej zmiennej spacje a nie daje mi pierwszy wyraz, czyli wg. twojego wzoru to co chcę powinno mi dać "ala" a daje mi "alamakota" :(

bo zapewne bezmyślnie wpisujesz to do stringa w pętli... - fasadin 2013-06-13 20:26
... zamień while na if, oraz poszukaj w google instrukcje obsługi do TBrain - _13th_Dragon 2013-06-13 20:27

Pozostało 580 znaków

2013-06-13 20:26
Hattric
0

Ale @Endi napisał pięknie i dla niego +1 do rep i browar do odebrania w Bydgoszczy :-)

Pozostało 580 znaków

2013-06-13 20:28
tmp__
0

Z serii "100 sposob na rozdzielenie stringa w C++" http://stackoverflow.com/ques[...]36129/splitting-a-string-in-c

Pozostało 580 znaków

2013-06-15 14:24
Hattric
0

@_13th_Dragon

Szukałem w twojej dokumentacji i nie zlanazłem. Musisz sobie dodać. btw nie wiem jak udało Ci się tutaj zarejestrować bez TBrain, ale mimo wszystko dzięki za jasne wytłumaczenie zamieszczonego kodu. Jesteś wielki!!

Pozostało 580 znaków

2013-06-15 14:44
0
wyraz = zdanie.substr(0, zdanie.find_first_of(' '));

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0