C nyelvben ezt hogyan kell?
Szeretném egy char tömbről megállapítani, hogy csak betűt tartalmaz.
Hogyan csinálnád meg?
If (?????)
Printf ("Csak betűt tartalmaz");
Éles
Printf....





Ittvan egy példa, ezt remélhetőleg testre tudod szabni az igényeidnek megfelelőlen. Ciklust lehet pointerrel, ellenőrzést pedig sokféleképpen másképp is meglehet oldani. 5p alatt hirtelen ennyire volt időm:





Tételezzük fel, hogy csak az angol ABC kis és nagybetűiről van szó.
1. Létrehozol egy változót - alkalmasint kicsi, egész számot tartalmazót (se stdbool segítségével lehet boolean is) - melyben azt tárolod, hogy az említett tömbben van-e a betűn kívül valami (1) vagy nincs (0). Alapértelmezetten feltételezzük, hogy nincs, így adjuk meg a kezdőértékét (0).
2. Végigiterálsz a tömbön.
3. A ciklus magjában: ha a tömb adott eleme kisebb mint 65 vagy nagyobb mint 122, akkor az 1. pontban említett változót átállítjuk 1-re (true), és kilépünk a ciklusból (break).
4. A cikluson kívül annak függvényében, hogy az 1. pontban említett változó 1 (true) vagy 0 (false), visszajelezzük a felhasználó számára, hogy van-e benne betűn kívül más, vagy nincs.
Köszönöm.
Igazából nem kellett volna leírni az egészet, csak azt, hogy a<low.
De ezt hogy hogy tudja kezelni?
Tehát nekem furcsa, hogy a<b.





#3: A karakter (char) lényegében egy 8 bites egész szám, a számítógép a betűket egész számokként tárolja - lásd ASCII-tábla:





Azért ez nem univerzális megoldás.
Vannak nyelvek, amelyekben ezt nem teheted meg.





Vagy kicsit "C-sebben":
int letters_only(char* p)
{
while (*p)
{
if ( !((*p>='a' && *p<='z') || (*p>='A' && *p<='Z')) ) return 0;
++p;
}
return 1;
}
Viszont ez (és az #1 is) csak null-terminated stringekkel működik, te pedig karakter tömböt írtál. A kettő nem teljesen ugyanaz.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!