Jak obliczyć ilość dużych znaków znajdujących się w tablicy?

0

Witam!

Poszukuje sposoby aby obliczyc ile jest duzych znaków w tablicy.

#include <stdio.h>

int main()
{
char text[]="Przykladowy tekst pisany MALYMI i duzymi LiTeRaMi";
int x;

printf("liter jest: %d", strlen(text));

for ( text[]; x <= 'a' && x >= 'z'; text[]++ )


return 0;
}

Mam rozumieć, ze poprzez x<='a' && >='z' można znaleŹć male lub duże litery w tablicy, ale jednak wciąż nie moge tego zrozumieć.

Byłbym wdzięczny za wytłumaczenie co robie zle, pozwolilo by mi to, na bliższe zrozumienei pętli for:)
Dzięki, pozdrawiam.

poprawienie tematu wątku i jego tagów - fp

1
for(DUZE=x=0;text[x];++x) if(('A'<=text[x])&&(text[x]<='Z')) ++DUZE;
for(MALE=x=0;text[x];++x) if(('a'<=text[x])&&(text[x]<='z')) ++MALE;
for(DUZE=x=0;text[x];++x) if(isupper(text[x])) ++DUZE; // #include <ctype.h>
for(MALE=x=0;text[x];++x) if(islower(text[x])) ++MALE; // #include <ctype.h>
0

Na początek to skoro liczysz duże, to raczej A i Z. Poza tym najpierw się liczy a potem wyświetla wynik. Swoją drogą ja liczył bym tak

 

#include <stdio.h>
#include <string.h>

int main()
{
    int wynik = 0;
    char text[] = "Przykladowy tekst pisany MALYMI i duzymi LiTeRaMi";
    for (int i=0; i< strlen(text);++i)
    {
        if (text[i] >= 'A' && text[i] <='Z') wynik ++;
    }
    printf("%d", wynik);
}
0

Dziękuje za szybką odpwiedz.
Tak, to miały być duże litery, bowiem mam obliczyć małe i duże. Wszystko wygląda idealnie, tylko nie rozumiem błędu kompilatora.

//`for' loop initial declaration used outside C99 mode

@_13th_Dragon,
również dzięki za odpowiedz. Wydaje mi się, że można troche prościej, niż to co podałeś. Prowadzący na zajęciach proponował tylko bilbiotekę <stdio.h>

Z mojej perspektywy wygląda to tak, ze mam tablice:

text[0] = ....
chce aby for przechodził od znaku do znaku i sprawdzał czy jest duża, czy mała litera. Jeżeli będzie mała, ikrementuję zmienną i przechodzi dalej.
więc funkcja for jak powinna wyglądać?

[code]
for ( text[0]; ... ; text++ )
zmienna++;
[/code]

rozumiem, ze pierwsza część pętli to początkowe zmienę, to ustalam, że pierwszy element tablicy [0], następnie póki nie "napotka zero" (null) ma wykonywać ikrementację tablicy? czyli text++? Tak?

0

Dzięki za pomoc @_13th_Dragon, dzała doskonale a teraz na spokojnie sobie przeanalizuje twój kod:)

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