Sunteți pe pagina 1din 1

Siruri de caractere – Functia atoi

În multe probleme, datele de tip numeric trebuie transformate în date de tip şir
de caractere pentru a se putea concatena, şi invers, datele de tip şir de caractere
care conţin numai cifre trebuie transformate în date de tip numeric pentru a se
putea aplica asupra lor operatorii matematici.
Explicatia
acronimului: ASCII
to int

Functia atoi
realizeaza convertirea şirului de caractere într-o valoare Forma generala:
numerică întreagă. int atoi(const char *s)

Şirul de caractere de convertit ar trebui să conţină caractere pentru reprezentarea unui


număr: cifre, semnul + sau -, de exemplu, sirul "1234" si nu "12x4".
Functia va furniza rezultatul astfel:
Dacă şirul de caractere conţine numai caractere folosite pentru reprezentarea unui
număr, funcţia va furniza o valoare numerică formată din caracterele şirului.
Dacă şirul de caractere conţine şi caractere care nu sunt folosite pentru reprezentarea
unui număr, exemplu şirul "12x34", ce contine litera x, se va face conversia până la
întâlnirea acelui caracter, iar valoarea furnizată va fi 12.
Dacă primul caracter din şir nu este un caracter permis, exemplu şirul "x123", funcţia va
furniza valoarea 0.

Se citesc de la tastatură 2 numere, în


două variabile de tip şir de caractere. Să
Fie declaratia char a[100]; se afişeze suma acestora, dacă lungimea explicatie
atoi(a); - converteşte şirul de caractere în fiecărui număr este de maxim 9
număr întreg (returnează o valoare caractere. În cazul în care unul din include<iostream.h>
întreagă) numere are mai mult de 9 caractere, să #include<string.h>
se afişeze un mesaj. #include<stdlib.h>
ex: char a[]="123"; void main()
int nr; #include<iostream> {char sir[100]; int n;
nr=atoi(a)*2; using namespace std; cout<<"dati sirul ";cin.get(sir,100);
cout<<nr; // se va afişa 246 int main() n=atoi(sir);
Dacă a[]="123mmm" se va afişa 246 {int s; cout<<"numarul dupa conversie
Daca a[]="aaa" se va fişa 0 char a[100],b[100]; "<<n<<"\n";
cin>>a;
cin>>b;
if(strlen(a)>9 || strlen(b)>9)
    {cout<<"Mesaj";return 0;}
s=atoi(a)+atoi(b);
cout<<s;
}