logo

Funkce Atoi() v C

V tomto článku budeme diskutovat o vlek() funkce v c s jejich příklady.

Co je Atoi()?

The vlek() funkce převádí an celé číslo hodnota od a tětiva postav. Vstupní řetězec je řetězec znaků, který lze změnit na číselnou hodnotu návratového typu. Funkce zastaví čtení vstupního řetězce, když narazí na první znak, který nepovažuje za součást čísla. Může to být znak null na koncích řetězce. The vlek() funkce nepodporuje exponenty a desetinná čísla.

Funkce int atoi( const char *str ) v C knihovna změní řetězec argument str na celé číslo. Obecně funkce převádí argument řetězce na celé číslo. Funkce atoi() přeskočí všechny prázdné znaky na začátku řetězce. Také převede znaky jako číselnou část a zastaví se, když najde první nečíslovaný znak.

Funkce knihovny Atoi().

Předdefinovaná knihovní funkce atoi() v programování C zpracovává převod řetězce na celé číslo. Funkce je uvedena v záhlaví souboru stdlib.h .

řazení seznamů java

Syntaxe funkce Atoi().

Syntaxi funkce Atoi() lze definovat jako:

 int atoi(const char *str) 

Parametr

Do funkce je předán pouze jeden parametr, řetězec. Důležité je zapamatovat si, že řetězec je přijímán jako konstanta. Funkce atoi() nikdy nemění přijatý řetězec a vrací pouze jeho transformovanou celočíselnou hodnotu. Soubor záhlaví 'stdlib.h' podporuje všechny přetypovací funkce v jazyce C.

Návratová hodnota

Pokud je str platným vstupem, funkce vrátí celé číslo rovné předanému číslu řetězce. Pokud str nemá žádný platný vstup, funkce vrátí nulovou hodnotu. Obecně lze řetězce efektivně převést na čísla, včetně následujících parametrů:

fmoviez
  1. Struny složené výhradně z ASCII číslic '0123456789' .
  2. Řetězce, které začínají znakem '+' a jsou celé tvořeny ASCII
  3. Struny složené výhradně z ASCII číslic a začínající znakem '-' .

Funkce Atoi() pracuje postupně. Jinými slovy, konstruuje čísla, která jsou reprezentována řetězci jeden po druhém. Funkce se přeruší pouze tehdy, když narazí na ne-ASCII.

Funkce Atoi() po přerušení vrací jednu ze dvou možných hodnot. Pokud je funkce volána na začátku řetězce a nebyly transformovány žádné hodnoty, vrátí 0. V opačném případě vrátí poslední číslo, které má.

Příklad 1:

Vezměme si příklad pro pochopení funkce atoi() v 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); } 

Výstup: Po provedení tohoto výše uvedeného kódu získáme výstup, jak je znázorněno níže:

číslování abecedy
 String value = 99898989 Integer value = 99898989 String value = Javatpoint Integer value = 0 

Příklad 2:

Tento příklad spravuje záporná čísla. Pokud je první znak '-' , umístěte znaménko jako záporné a poté převeďte zbytek řetězce na číslo tak, že jím znaménko vynásobíte.

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

Výstup: Po provedení tohoto výše uvedeného kódu získáme výstup, jak je znázorněno níže:

10 milionů
 Output = -23233 

Příklad 3:

Vezměme si jiný program C pro převod řetězce na celé číslo pomocí funkce 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; } 

Výstup: Po provedení výše uvedeného kódu získáme výstup, jak je znázorněno níže:

Výstup je:

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