atoi()

Funcția atoi() realizează conversia unui șir de caractere într-un număr întreg.

La conversie, funcția ignoră spațiile inițiale și se oprește la primul caracter care nu este cifră. Funcția nu validează formatul șirului trimis ca parametru.

Sintaxa
int atoi(const char* sir);
Parametri
  • sir: șirul de caractere care conține o valoare numerică validă.
Returnare
Funcția returnează valoarea numerică de tip int corespunzătoare conversiei. Dacă șirul nu conține cifre la început, rezultatul returnat este 0.

Exemplu de utilizare

Funcția atoi() face parte din biblioteca <cstdlib>, care trebuie inclusă în antetul programului.

Un exemplu care evidențiază diferitele scenarii de conversie și felul în care realizează conversia șirurilor:

#include <iostream>
#include <cstdlib>
using namespace std;

int main() {
    char s1[] = "12345";
    char s2[] = "   -76abc";
    char s3[] = "abc123";

    cout << "Valoarea din \"" << s1 << "\": " << atoi(s1) << endl;
    cout << "Valoarea din \"" << s2 << "\": " << atoi(s2) << endl;
    cout << "Valoarea din \"" << s3 << "\": " << atoi(s3) << endl;

    return 0;
}
Valoarea din "12345": 12345
Valoarea din "   -76abc": -76
Valoarea din "abc123": 0

Observăm din exemplele de afișări că funcția atoi() ia în considerare și operatorii de semn. Pentru șirul care nu începe cu vreo cifră, indiferent dacă mai târziu am găsi cifre, rezultatul conversiei este tot 0.