Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main()
- {
- char s[100]; //szöveg = string
- int b, i;
- scanf("%s",s);
- // nézzük először a ciklus fejét, ami 3 utasításból áll
- // 1. utasítás: b=1, i=0 <-- első ciklusmag végrehajtás előtt beállítjuk a változókat, ezt inicializáló utasításoknak is nevezzük
- // i iterál végig a string karakterein, b egy logikai változó, ami a kérdésre a választ fogja adni
- // b = 1 ha mindegyik betű, b=0 ha volt olyan karakter a stringben ami nem betű
- // 2. utasítás: i < strlen(s) && b --> ez az eldöntendő kérdés, ha igaz akkor folytatódik a ciklus végrehajtása,
- // ha hamis kilépünk a ciklusból: ez két kérdés ÉS-kapcsolattal (&&) összekapcsolva, az első kérdés: i<strlen(s) ? --> addig
- // vizsgáljuk a stringet karakterről karakterre, amíg a végéig nem érünk (pl. ha s="alma", akkor strlen(s)=4, és mivel a stringek
- // C-ben karakterek tömbjei, tehát s[0]='a', s[1]='l', stb.
- // a második feltétel az, hogy "b", b változó pedig egy egész szám (int). C-ben az egész számok logikai értéke HAMIS ha a szám 0,
- // IGAZ egyébként. Mivel b-t 1re állítjuk az elején, így az első kiértékelésnél a "b" biztosan igaz lesz.
- // A ciklusmagban egy utasítás van -> b = isalpha(s[i]), azaz b-t 1-re (igazra) állítjuk ha a string i-edik karaktere betű, hamisra
- // egyébként. Így ha bárhol találunk a stringben NEM BETŰ karaktert, a "b" hamis lesz, így a ciklus futása leáll.
- // Végül egy ternáris operátorral kiíratjuk az eredményt, a ternáris operátor így működik:
- // b ? "igen" : "nem" MEGEGYEZIK AZZAL, HOGY: if(b){ "igen" }else{ "nem" }
- for (b=1, i=0; i<strlen(s) && b; i++)
- b = isalpha(s[i]);
- printf( b ? "Igen\n" : "Nem\n");
- return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement