[C] Come usare Atoi?

R4z0r
Salve ragazzi che significato ha questa scrittura atoi(&riga[c]) dove c è un intero e riga è un array di tipo char?
Nel senso ho capito che serve a trasformare un char in un int ma non basta scrivere riga[c] senza la e commerciale?
Scusate se faccio domande del tutto banali

Risposte
wanderer1
la differenza sta nel fatto che riga[c] è un char, mentre &riga[c] ritorna un char*, ovvero un puntatore ad un char (quello richiesto dalla funzione atoi). Così presentata, l'istruzione atoi(&riga[c]) mi sembra serva a ritornare un numero composto dalle cifre che seguono la posizione c+1 all'interno di un array char. Ti faccio un esempio:

char riga[] = "1234567";

atoi(riga) oppure atoi(&riga[0]) ritorna un int che vale: 1234567;

atoi(&riga[3]) ritorna un int che vale: 4567

apatriarca
Piuttosto era sufficiente scrivere atoi(riga + c) per via dell'aritmetica dei puntatori..

R4z0r
"wanderer":
la differenza sta nel fatto che riga[c] è un char, mentre &riga[c] ritorna un char*, ovvero un puntatore ad un char (quello richiesto dalla funzione atoi). Così presentata, l'istruzione atoi(&riga[c]) mi sembra serva a ritornare un numero composto dalle cifre che seguono la posizione c+1 all'interno di un array char. Ti faccio un esempio:

char riga[] = "1234567";

atoi(riga) oppure atoi(&riga[0]) ritorna un int che vale: 1234567;

atoi(&riga[3]) ritorna un int che vale: 4567


Ah :!: Grazie ho capito!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.