Kezdőoldal » Számítástechnika » Programozás » C nyelvben ezt hogyan kell?

C nyelvben ezt hogyan kell?

Figyelt kérdés

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....


2021. okt. 10. 13:22
 1/8 anonim ***** válasza:

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:


[link]

2021. okt. 10. 13:58
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:

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.

2021. okt. 10. 14:06
Hasznos számodra ez a válasz?
 3/8 A kérdező kommentje:

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.

2021. okt. 10. 14:07
 4/8 anonim ***** válasza:

#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:

[link]

2021. okt. 10. 14:15
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:
Bammeg, igazatoo nvan!!!!
2021. okt. 10. 14:42
 6/8 anonim ***** válasza:

Azért ez nem univerzális megoldás.

Vannak nyelvek, amelyekben ezt nem teheted meg.

2021. okt. 10. 15:03
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

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.

2021. okt. 10. 22:12
Hasznos számodra ez a válasz?
 8/8 A kérdező kommentje:
készen van, köszönöm!
2021. okt. 13. 13:30

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!