Transformati din text in numar, numerele mai mici de 10000. In c++. Aveti vreo idee?
DemonBolt
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.
2 votes Thanks 1
DarcyTay
Multumesc mult! Ne-a fost de mare ajutor!
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.