Tässä artikkelissa aiomme keskustella hinata () funktio c:ssä esimerkkiensä kanssa.
Mikä on Atoi()?
The hinata () funktio muuntaa an kokonaisluku arvo alkaen a merkkijono hahmoista. Syöttömerkkijono on merkkijono, joka voidaan muuttaa palautustyypin numeeriseksi arvoksi. Funktio lopettaa syötemerkkijonon lukemisen, kun se kohtaa ensimmäisen merkin, jota se ei pidä luvun osana. Se voi olla tyhjä merkki merkkijonon lopussa. The hinata () funktio ei tue eksponenteja ja desimaalilukuja.
Funktio int atoi( const char *str ) kohdassa C kirjasto muuttaa merkkijonoargumentin str kokonaisluvuksi. Yleensä funktio muuntaa merkkijonoargumentin kokonaisluvuksi. Atoi()-funktio ohittaa kaikki välilyönnit merkkijonon alussa. Se myös muuntaa merkit numeroosiksi ja pysähtyy, kun se löytää ensimmäisen ei-numeromerkin.
Atoi()-kirjastofunktio
Ennalta määritetty kirjastofunktio atoi() C-ohjelmoinnissa käsittelee merkkijonon muuntamisen kokonaisluvuiksi. Toiminto määritetään otsikkotiedostossa stdlib.h .
linkitetty lista
Atoi()-funktion syntaksi
Atoi()-funktion syntaksi voidaan määritellä seuraavasti:
int atoi(const char *str)
Parametri
Vain yksi parametri, merkkijono, välitetään funktiolle. Tärkeä asia muistaa, että merkkijono vastaanotetaan vakiona. Atoi()-funktio ei koskaan muuta vastaanotettua merkkijonoa ja palauttaa vain sen muunnetun kokonaisluvun. Otsikkotiedosto 'stdlib.h' tukee kaikkia typecasting-toimintoja C-kielellä.
sakaali vs susi
Palautusarvo
Jos str on kelvollinen syöte, funktio palauttaa kokonaisluvun, joka on yhtä suuri kuin välitetty merkkijono. Jos str:llä ei ole kelvollista syötettä, funktiot palauttavat nollan arvon. Yleensä merkkijonot voidaan muuntaa tehokkaasti numeroiksi, jotka sisältävät seuraavat parametrit:
- Jouset koostuvat kokonaan ASCII numeroita '0123456789' .
- Merkkijonot, jotka alkavat hahmolla '+' ja ne koostuvat kokonaan ASCII
- Jouset koostuvat kokonaan ASCII numeroita ja alkavat merkillä '-' .
Atoi()-funktio toimii asteittain. Toisin sanoen se rakentaa numeroita, jotka esitetään merkkijonoilla yksitellen. Funktio katkeaa vain, kun se kohtaa ei-ASCII-koodin.
Atoi()-funktio palauttaa yhden kahdesta mahdollisesta arvosta katkaisun jälkeen. Jos funktiota kutsutaan merkkijonon alussa eikä arvoja ole muunnettu, se palauttaa arvon 0. Muussa tapauksessa se palauttaa sen viimeisimmän luvun.
Esimerkki 1:
Otetaan esimerkki C:n atoi()-funktion ymmärtämiseksi.
#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); }
Lähtö: Kun tämä yllä oleva koodi on suoritettu, saamme tulosteen alla olevan kuvan mukaisesti:
String value = 99898989 Integer value = 99898989 String value = Javatpoint Integer value = 0
Esimerkki 2:
Tämä esimerkki hallitsee negatiivisia lukuja. Jos ensimmäinen merkki on '-' , aseta merkki negatiiviseksi ja muuta sitten merkkijonon loppuosa luvuksi kertomalla etumerkki sillä.
int merkkijonoon 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; }
Lähtö: Kun tämä yllä oleva koodi on suoritettu, saamme tulosteen alla olevan kuvan mukaisesti:
Output = -23233
Esimerkki 3:
Otetaan toinen C-ohjelma, joka muuntaa merkkijonon kokonaisluvuksi käyttämällä Atoi () -funktiota.
inurl:.git/head
#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; }
Lähtö: Yllä olevan koodin suorittamisen jälkeen saamme tulosteen alla olevan kuvan mukaisesti:
Lähtö on:
Enter any integer = abc Converted integer = 0 Enter any integer = 12221 Converted integer = 12221 Enter any integer = 1.1225112 Converted integer = 1