logo

Funkcija Atoi() valodā C

Šajā rakstā mēs apspriedīsim vilkt () funkciju c ar saviem piemēriem.

Kas ir Atoi ()?

The vilkt () funkcija pārvērš an vesels skaitlis vērtība no a virkne no rakstzīmēm. Ievades virkne ir rakstzīmju virkne, ko var pārvērst atgriešanas tipa skaitliskā vērtībā. Funkcija pārtrauc nolasīt ievades virkni, kad tā saskaras ar pirmo rakstzīmi, kuru tā neuzskata par skaitļa daļu. Tā var būt nulles rakstzīme virknes galos. The vilkt () funkcija neatbalsta eksponentus un decimālskaitļus.

Funkcija int atoi( const char *str ) iekš C bibliotēka maina virknes argumentu str uz veselu skaitli. Parasti funkcija pārvērš virknes argumentu par veselu skaitli. Funkcija atoi() izlaiž visas atstarpes rakstzīmes virknes sākumā. Tas arī pārvērš rakstzīmes kā skaitļa daļu un apstājas, kad atrod pirmo rakstzīmi, kas nav skaitļa rakstzīme.

Atoi() bibliotēkas funkcija

Iepriekš definētā bibliotēkas funkcija atoi() C programmēšanā apstrādā virknes pārveidošanu par veseliem skaitļiem. Funkcija ir norādīta galvenes failā stdlib.h .

manuāla pārbaude

Funkcijas Atoi() sintakse

Funkcijas Atoi() sintaksi var definēt šādi:

 int atoi(const char *str) 

Parametrs

Funkcijai tiek nodots tikai viens parametrs, virkne. Svarīgi atcerēties, ka virkne tiek saņemta kā konstante. Funkcija atoi() nekad nemaina saņemto virkni un atgriež tikai tās pārveidoto veselo skaitļu vērtību. Galvenes fails 'stdlib.h' atbalsta visas tipa apraides funkcijas C valodā.

Atdeves vērtība

Ja str ir derīga ievade, funkcija atgriež veselu skaitli, kas vienāds ar nodotās virknes numuru. Ja str nav derīgas ievades, funkcijas atgriež nulles vērtību. Parasti virknes var efektīvi pārvērst skaitļos, iekļaujot šādus parametrus:

datu tipi java
  1. Stīgas, kas pilnībā sastāv no ASCII cipariem '0123456789' .
  2. Stīgas, kas sākas ar rakstzīmi '+' un pilnībā sastāv no ASCII
  3. Stīgas, kas pilnībā sastāv no ASCII cipari un sākas ar rakstzīmi '-' .

Funkcija Atoi() darbojas pakāpeniski. Citiem vārdiem sakot, tas konstruē skaitļus, kurus pa vienam attēlo virknes. Funkcija pārtrauc darbību tikai tad, ja tā saskaras ar ne-ASCII.

Funkcija Atoi() pēc pārtraukuma atgriež vienu no divām iespējamām vērtībām. Ja funkcija tiek izsaukta virknes sākumā un neviena vērtība nav pārveidota, tā atgriež 0. Pretējā gadījumā tā atgriezīs jaunāko skaitli, kas tai ir.

1. piemērs:

Ņemsim piemēru, lai saprastu atoi() funkciju programmā 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); } 

Izvade: Pēc šī koda izpildīšanas mēs saņemsim izvadi, kā parādīts zemāk:

alfabēts numurēts
 String value = 99898989 Integer value = 99898989 String value = Javatpoint Integer value = 0 

2. piemērs:

Šis piemērs pārvalda negatīvos skaitļus. Ja pirmā rakstzīme ir '-' , novietojiet zīmi kā negatīvu un pēc tam pārveidojiet atlikušo virknes daļu par skaitli, reizinot zīmi ar to.

 #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; } 

Izvade: Pēc šī koda izpildīšanas mēs saņemsim izvadi, kā parādīts zemāk:

salīdzināma java
 Output = -23233 

3. piemērs:

Paņemsim citu C programmu, lai pārvērstu virkni veselā skaitlī, izmantojot funkciju Atoi ().

 #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; } 

Izvade: Pēc iepriekš minētā koda izpildīšanas mēs saņemsim izvadi, kā parādīts zemāk:

Izvade ir:

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