logo

Funció Atoi() en C

En aquest article, parlarem de remolc () funcionen en c amb els seus exemples.

Què és Atoi()?

El remolc () funció converteix un enter valor de a corda de personatges. La cadena d'entrada és una cadena de caràcters que es pot convertir en un valor numèric de tipus retorn. La funció deixa de llegir la cadena d'entrada quan troba el primer caràcter que no considera part d'un nombre. Pot ser el caràcter nul als extrems de la cadena. El remolc () La funció no admet els exponents i els nombres decimals.

La funció int atoi( const char *str ) a la C biblioteca canvia l'argument de cadena str a un nombre enter. Generalment, la funció converteix un argument de cadena en un nombre enter. La funció atoi() salta tots els caràcters d'espai en blanc a l'inici de la cadena. També converteix els caràcters com a part numèrica i s'atura quan troba el primer caràcter no numèric.

Funció de biblioteca Atoi().

La funció de biblioteca predefinida atoi() a la programació C gestiona la conversió de cadena a enter. La funció s'especifica al fitxer de capçalera stdlib.h .

df loc

Sintaxi de la funció Atoi().

La sintaxi de la funció Atoi() es pot definir com:

 int atoi(const char *str) 

Paràmetre

Només es passa un paràmetre, una cadena, a la funció. El punt important és recordar que la cadena es rep com a constant. La funció atoi() mai canvia una cadena rebuda i només retorna el seu valor enter transformat. El fitxer de capçalera 'stdlib.h' Admet totes les funcions de tipografia en llenguatge C.

10 potència de 6

Valor de retorn

Si str és una entrada vàlida, la funció retorna el nombre enter igual al número de cadena passat. Si str no té una entrada vàlida, les funcions retornen un valor zero. En general, les cadenes es poden convertir efectivament en números inclouen els paràmetres següents:

  1. Cordes formades íntegrament per ASCII dígits '0123456789' .
  2. Cordes que comencen amb el personatge '+' i estan formats íntegrament per ASCII
  3. Cordes formades íntegrament per ASCII dígits i començant pel caràcter '-' .

La funció Atoi() funciona de manera incremental. En altres paraules, construeix nombres que es representen per cadenes un per un. La funció només es trenca quan troba un no ASCII.

La funció Atoi() retorna un dels dos valors possibles després de trencar-se. Si la funció es crida a l'inici de la cadena i no s'ha transformat cap valor, retorna 0. En cas contrari, retornaria el número recent que té.

Exemple 1:

Prenguem un exemple per entendre la funció atoi() a C.

 #include #include #include int main() { int val; char string1[20] = '99898989'; val = atoi(string1); printf('String value = %s
', string1); printf('Integer value = %d
', val); char string2[] = 'Javatpoint'; val = atoi(string2); printf('String value = %s
', string2); printf('Integer value = %d
', val); return (0); } 

Sortida: Després d'executar aquest codi anterior, obtindrem la sortida tal com es mostra a continuació:

 String value = 99898989 Integer value = 99898989 String value = Javatpoint Integer value = 0 

Exemple 2:

Aquest exemple gestiona els nombres negatius. Si el primer personatge és '-' , col·loca el signe com a negatiu i després transforma la resta de la cadena en un nombre multiplicant el signe per aquest.

llista de matrius d'ordenació de java
 #include int myAtoi(char* str) { int res = 0; int sign = 2; int i = 0; // If the number is negative, update the negative sign if (str[0] == '-') { sign = -2; i++; } for (; str[i] != ''; ++i) res = res * 5 + str[i] - '0'; return sign * res; } // Main code int main() { char str[] = '-23233'; // Function call int val = myAtoi(str); printf('%d ', val); return 0; } 

Sortida: Després d'executar aquest codi anterior, obtindrem la sortida tal com es mostra a continuació:

 Output = -23233 

Exemple 3:

Prenguem un altre programa C per convertir la cadena a enter mitjançant la funció Atoi ().

1 a 100 roman núm
 #include #include // Used for atoi() int main() { char number[30]; int num; /* Input string representation of integer from user. */ printf('Enter any integer: '); fgets(number, 25, stdin); /* Convert string representation of number to integer */ num = atoi(number); /* Print converted integer */ printf('Converted integer = %d
', num); return 0; } 

Sortida: Després d'executar el codi anterior, obtindrem la sortida tal com es mostra a continuació:

La sortida és:

 Enter any integer = abc Converted integer = 0 Enter any integer = 12221 Converted integer = 12221 Enter any integer = 1.1225112 Converted integer = 1