zliczanie ilości słów

0

Program ma wypisywać ilość słów, które mogą być odzielone dowolnymi znakami nie będącymi literami. Mój problem polega na tym, że jeżeli wpisuje w cudzysłowie np: "dom" to wyświetla mi że ilość słów wynosi 2. Jeżeli użytkownik poda np: dom"dom to wypisuje 2 czyli jest ok, Jaki warunek podać żeby w pierwszym przykładzie wypiało mi 1, a nie 2 słowa? Podaje mój fragment kodu z tym przypadkiem:

// x - liczba słów
if(tab[j]=='\"'&&((tab[j+1]>='A'&&tab[j+1]<='Z')||(tab[j+1]>='a' && tab[j+1]<='z'))){
            x++;

        }
        if(tab[j]=='\"' && tab[j+1]==' '){
            x--;
        }
0

Wszystko co nie jest literą, Zamień na spacje, a potem Licz:

   #include <ctypes.h>
   for (int i = 0; str2[i] != 0; i++) {
        if (! isalpha(str2[i])) 
            str2[i] = ' ';
    }
0

możesz dodać za pętlą:

if(tab[0]<'A'||tab[0]>'Z'&&tab[0]<'a'||tab[0]>'z'&&x>1) {x--;}
0

Zakładając, że teraz nie czytasz poza tablicą:

if (!isalpha(tab[j]) && isalpha(tab[j + 1])) {
    x++;
}

Plus jeden gdy isalpha(tab[0]).

0

Dzięki wielkie, problem rozwiązany :)

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