Witam,
podobnie jak w poprzednim zadanym przeze mnie pytaniu, mam znowu problem z napisaniem funkcji. Tym razem jednak, funkcja ma zwracać ilość słów w tablicy.
Polecenie brzmi następująco: Napisz funkcję wyznaczającą liczbę słów w tablicy s. Za "słowo" proszę przyjąć ciąg liter, cyfr i znaków podkreślenia. Słowa mogą być rozdzielane jednym lub wieloma znakami spacji, tabulacji, czy podziału wiersza.
Gdyby była mowa o tylko jednej spacji czy tylko jednym innym znaku podziału napisałbym coś takiego:
int str_word_count(char * s)
{
int licznik_slow = 1;
bool czyZnak;
for(; *s != '\0'; ++s)
{
czyZnak = false;
if(*s == 32 || *s == 9 || *s == 11)
{
czyZnak = true;
}
if(czyZnak)
{
licznik_slow++;
}
}
return licznik_slow;
}
Jednak mój problem leży w tym, że nie mam pomysłu w jaki sposób mógłbym zliczać te słowa w przypadku, gdy jest więcej niż jedna spacja, czy którykolwiek z innych znaków, bo powyższy kod w takim przypadku zwróci po prostu błędną wartość.
Chciałbym więc prosić o pomoc w modyfikacji, a raczej podpowiedź w jaki sposób mógłbym go poprawić, aby słowa były poprawnie zliczane i żeby większa ilość spacji, czy innych rozdzielników słów nie powodowała problemu.
Za wszelkie odpowiedzi z góry dziękuję.