Come utilizzare la funzione Itoa in C

Come Utilizzare La Funzione Itoa In C



Il linguaggio di programmazione C è stato lanciato oltre cinque decenni fa. Da allora, ha guadagnato un'enorme popolarità nel mondo della programmazione. Si distingue dagli altri linguaggi grazie alle sue caratteristiche tra cui semplicità strutturale, funzioni, portabilità, gestione efficiente della memoria, ecc. Nonostante abbiano varie altre caratteristiche, le funzioni in C sono le risorse più importanti che aiutano molti utenti a scrivere robusti frammenti di codice.

Inoltre, itoa è una funzione non standard ampiamente utilizzata che funge da convertitore del tipo di dati. Prende il tipo di dati int come input e lo converte in una stringa. Tuttavia, molti di voi non ne conoscono l'utilizzo. Pertanto, questa guida spiega in modo conciso come utilizzare la funzione itoa in C senza problemi.







Come utilizzare la funzione Itoa in C

Cominciamo dalle basi. Ecco la semplice sintassi per la funzione itoa:



int principale ( ) {

int nessuno = 12345 ;
car stra [ venti ] ;
affogato ( nessuno , stra , 10 ) ;
printf ( 'Numero intero: %d \N Stringhe \N ' , nessuno , stra ) ;
ritorno 0 ;


}

Nel programma indicato, i dettagli sono i seguenti:



  1. num è il numero intero
  2. str è il carattere
  3. 10 è il basso

Ora andiamo avanti, scriviamo un programma e implementiamo la funzione itoa. Ad esempio, dobbiamo scrivere un programma per modificare i numeri immessi nella stringa.





#include

#include

vuoto affogato ( int nessuno , car * stra , int base ) {

int io = 0 ;
int è negativo = 0 ;

Se ( nessuno == 0 ) {
stra [ io ++ ] = '0' ;
stra [ io ] = ' \0 ' ;
ritorno ;
}


Se ( nessuno < 0 && base != 10 ) {

è negativo = 1 ;
nessuno = - nessuno ;
}

Mentre ( nessuno != 0 ) {
int rem = nessuno % base ;

stra [ io ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'UN' : rem + '0' ;

nessuno = nessuno / base ;
}

Se ( è negativo && base == 10 )
stra [ io ++ ] = '-' ;

stra [ io ] = ' \0 ' ;

int inizio = 0 ;
int FINE = io - 1 ;


Mentre ( inizio < FINE ) {

car temp = stra [ inizio ] ;
stra [ inizio ] = stra [ FINE ] ;
stra [ FINE ] = temp ;
inizio ++;
FINE --;
}
}

int principale ( ) {
int nessuno ;
printf ( 'Inserisci un numero intero: ' ) ;

Se ( scanf ( '%D' , & nessuno ) != 1 ) {
fprintf ( stderr , 'Input non valido. Inserisci un numero intero. \N ' ) ;
ritorno EXIT_FAILURE ;
}

int dimensione_massima = snprintf ( NULLO , 0 , '%D' , nessuno ) + 1 ;
car * stra = ( car * ) malloc ( dimensione_massima ) ;

Se ( stra == NULLO ) {
fprintf ( stderr , 'L'allocazione della memoria non è riuscita \N ' ) ;
ritorno EXIT_FAILURE ;
}


affogato ( nessuno , stra , 10 ) ;

printf ( 'Numero intero: %d \N Stringhe \N ' , nessuno , stra ) ;

gratuito ( stra ) ;

ritorno 0 ;


}

Nel programma precedente, itoa (int num, char *str, int base) è la funzione itoa. Inoltre, la seguente sintassi assegna direttamente zero al risultato quando anche il numero di input è zero:

Se ( nessuno == 0 ) {

stra [ io ++ ] = '0' ;
stra [ io ] = ' \0 ' ;
ritorno ;


}

Quando il numero immesso è negativo e anche la base non è 10, le seguenti righe di programma imposteranno il flag negativo:



Se ( nessuno < 0 && base != 10 ) {

è negativo = 1 ;
nessuno = - nessuno ;

Il ciclo seguente elabora tutte le cifre e le converte in un carattere corrispondente. Pertanto, per basi superiori a 10, il programma utilizza le lettere da “a” ad “f” per le cifre da 10 a 15.

}

Mentre ( nessuno != 0 ) {

int rem = nessuno % base ;

stra [ io ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'UN' : rem + '0' ;

nessuno = nessuno / base ;

}

Quando il numero è originariamente negativo e la base è 10, il programma aggiungerà il segno negativo alla stringa del risultato.

Se ( è negativo && base == 10 )

stra [ io ++ ] = '-' ;

Le righe seguenti terminano la stringa del risultato e poi la invertono poiché le cifre vengono ottenute in ordine inverso durante il processo di conversione:

stra [ io ] = ' \0 ' ;

// Inverte la stringa

int inizio = 0 ;

int FINE = io - 1 ;

Mentre ( inizio < FINE ) {

car temp = stra [ inizio ] ;
stra [ inizio ] = stra [ FINE ] ;
stra [ FINE ] = temp ;
inizio ++;
FINE --;


}

Quindi, il programma prende il numero intero come input e alloca la memoria per la rappresentazione della stringa. Successivamente, chiama itoa per convertire il numero intero in stringa e stampa il numero intero originale. Infine, libera la memoria allocata. Ad esempio, diamo un numero al programma:

Tuttavia, se inserisci un numero non intero, il programma mostrerà il seguente risultato:

Conclusione

In questo modo è possibile implementare e utilizzare facilmente la funzione itoa in C. Abbiamo utilizzato un esempio dettagliato che contiene più funzioni per convertire il numero intero in stringa. Ricorda, è solo un esempio, ma puoi combinare la funzione itoa con varie funzioni per scrivere programmi fantastici.