Informatică, întrebare adresată de DarcyTay, 8 ani în urmă

Transformati din text in numar, numerele mai mici de 10000. In c++. Aveti vreo idee?

Răspunsuri la întrebare

Răspuns de DemonBolt
1
Nu stiu exact ce vrei, dar iti ofer doua variante.
1. Transformarea text - numar prin functie predefinita
• Folosesti functia atoi(const char* str) ce primeste ca parametru un sir de caractere (C -Style String) si il transforma in numat de tip int. Nu uita sa adaugi biblioteca stdlib
• daca vrei din text in double/float folosesti atof()
• daca vrei din text in long int folosesti atol()
Exemple:
char str[256];
fgets(str,256,stdin); //sau orice de citit siruri
int nr = atoi(str);

Dezavantaje:
•unul imens:
Exemplu 2: daca str[] este: 23test14, atoi(str) returneaza doar 23.
•Daca str[] nu contine litere, sau nr este peste limita int-ului, vei avea Undefined Behaviour.

2. Metoda clasica de parcurgere este atasata. Ea returneaza numerele date indiferent.
De remarcat este structura urmatoare:
str[i] - '0' --> daca te uiti pe un tabel ASCII vei intelege, dar in principal transforma din caracter in cifra.


Anexe:

DarcyTay: Multumesc mult! Ne-a fost de mare ajutor!
Alte întrebări interesante