Dzielenia zdania na słowa i zapisywanie w zmiennych

0

Witam ^^
Mam taki drobny problem. (Jestem początkujący w c++).
Mianowicie.
Mam taki kod, który dzieli zdanie na słowa:

 
int main()
{
	 string s,ss;
  int i,n;
  unsigned char c;

  getline(cin,s);
 ss = "";
  s += " "; 
  n = s.length();
  for(i = 0; i < n; i++)
  {
    c = s[i];
    if(((c >= '0') && (c <= '9')) || (c == '_') || (c == '-')  ||
       ((c >= 'A') && (c <= 'Z')) ||((c >= 'a') && (c <= 'z')) ||
        (c == 164) || (c == 165)  || (c == 143) || (c == 134)  ||
        (c == 168) || (c == 169)  || (c == 157) || (c == 136)  ||
        (c == 227) || (c == 228)  || (c == 224) || (c == 162)  ||
        (c == 151) || (c == 152)  || (c == 141) || (c == 171)  ||
        (c == 189) || (c == 190))
      ss += c;
    else if(ss != "")
    {

      cout << "[" << ss << "]\n";
      ss = "";
    }
  }

Działa on tak, że jak wpisze zdanie np. "Ala ma kota", to wyświetli mi on:
"[Ala]
[Ma]
[Kota]".

Lecz ja chciałbym zrobić tak, żeby każdy wyraz zapisywał się w zmiennej, czyli:

slowo1 = "Ala";
slowo2 = "Ma";
slowo3 = "Kota";

Jestem początkujący w C++. Mógłby mi ktoś dać jakieś wskazówki?

1

moze z tablicy skorzystaj?

0

Zamiast tego dużego warunku użyj isspace:

if(!isspace(c))
{
	ss += c;
}
else ...
0

ja wole używać kodu, który mam, isspace nieraz popełnia błędy.
A co do wątku, już sobie poradziłem, zrobiłem zmienną, która liczy, które to słowo (i++), a następnie tablice (tablica[i]), i wszystko działa jak należy :D

CLOSE

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