A C programozási nyelv több mint öt évtizeddel ezelőtt jelent meg. Azóta óriási népszerűségre tett szert a programozási világban. Jellemzői, például szerkezeti egyszerűsége, funkciók, hordozhatóság, hatékony memóriakezelés stb. révén kiemelkedik a többi nyelv közül. Annak ellenére, hogy számos egyéb funkcióval is rendelkezik, a C nyelvű funkciók a legkiemelkedőbb eszközök, amelyek sok felhasználót segítenek a robusztus kódrészletek megírásában.
Ezenkívül az itoa egy széles körben használt nem szabványos funkció, amely adattípus-átalakítóként működik. Bemenetként az int adattípust veszi, és karakterláncsá alakítja. Sokan azonban nem ismerik a használatát. Ezért ez az útmutató tömören elmagyarázza, hogyan kell gond nélkül használni az itoa függvényt C nyelven.
Az Itoa függvény használata C-ben
Kezdjük az alapokkal. Íme az itoa függvény egyszerű szintaxisa:
int fő- ( ) {
int az egyiken = 12345 ;
char str [ húsz ] ;
megfulladt ( az egyiken , str , 10 ) ;
printf ( 'Egész szám: %d \n Karakterlánc: %s \n ' , az egyiken , str ) ;
Visszatérés 0 ;
}
Az adott programban a részletek a következők:
- a szám az egész szám
- str a karakter
- 10 a basszus
Most menjünk előre, írjunk egy programot, és hajtsuk végre az itoa függvényt. Például programot kell írnunk, hogy a beírt számokat a karakterláncba módosítsuk.
#include
#include
üres megfulladt ( int az egyiken , char * str , int bázis ) {
int én = 0 ;
int isNegatív = 0 ;
ha ( az egyiken == 0 ) {
str [ én ++ ] = '0' ;
str [ én ] = ' \0 ' ;
Visszatérés ;
}
ha ( az egyiken < 0 && bázis != 10 ) {
isNegatív = 1 ;
az egyiken = - az egyiken ;
}
míg ( az egyiken != 0 ) {
int rem = az egyiken % bázis ;
str [ én ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'a' : rem + '0' ;
az egyiken = az egyiken / bázis ;
}
ha ( isNegatív && bázis == 10 )
str [ én ++ ] = '-' ;
str [ én ] = ' \0 ' ;
int Rajt = 0 ;
int vége = én - 1 ;
míg ( Rajt < vége ) {
char hőm = str [ Rajt ] ;
str [ Rajt ] = str [ vége ] ;
str [ vége ] = hőm ;
Rajt ++;
vége --;
}
}
int fő- ( ) {
int az egyiken ;
printf ( 'Adjon meg egy egész számot: ' ) ;
ha ( scanf ( '%d' , & az egyiken ) != 1 ) {
fprintf ( stderr , 'Érvénytelen bevitel. Adjon meg egy egész számot. \n ' ) ;
Visszatérés EXIT_FAILURE ;
}
int max_size = snprintf ( NULLA , 0 , '%d' , az egyiken ) + 1 ;
char * str = ( char * ) malloc ( max_size ) ;
ha ( str == NULLA ) {
fprintf ( stderr , 'A memóriakiosztás nem sikerült \n ' ) ;
Visszatérés EXIT_FAILURE ;
}
megfulladt ( az egyiken , str , 10 ) ;
printf ( 'Egész szám: %d \n Karakterlánc: %s \n ' , az egyiken , str ) ;
ingyenes ( str ) ;
Visszatérés 0 ;
}
Az előző programban az itoa (int num, char *str, int base) az itoa függvény. Ezenkívül a következő szintaxis közvetlenül nullát rendel az eredményhez, ha a bemeneti szám is nulla:
ha ( az egyiken == 0 ) {str [ én ++ ] = '0' ;
str [ én ] = ' \0 ' ;
Visszatérés ;
}
Ha a bemeneti szám negatív, és az alap szintén nem 10, a következő programsorok állítják be a negatív jelzőt:
ha ( az egyiken < 0 && bázis != 10 ) {
isNegatív = 1 ;
az egyiken = - az egyiken ;
A következő ciklus az összes számjegyet feldolgozza és megfelelő karakterré alakítja át. Ezért a 10-nél nagyobb bázisoknál a program az „a” és „f” közötti betűket használja a 10 és 15 közötti számjegyekhez.
}míg ( az egyiken != 0 ) {
int rem = az egyiken % bázis ;
str [ én ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'a' : rem + '0' ;
az egyiken = az egyiken / bázis ;
}
Ha a szám eredetileg negatív és az alap 10, a program a negatív előjelet hozzáfűzi egy eredmény karakterlánchoz.
ha ( isNegatív && bázis == 10 )str [ én ++ ] = '-' ;
A következő sorok fejezik be az eredmény karakterláncot, majd megfordítják, mivel a számjegyek fordított sorrendben jönnek létre az átalakítási folyamat során:
str [ én ] = ' \0 ' ;// Fordítsa meg a karakterláncot
int Rajt = 0 ;
int vége = én - 1 ;
míg ( Rajt < vége ) {
char hőm = str [ Rajt ] ;
str [ Rajt ] = str [ vége ] ;
str [ vége ] = hőm ;
Rajt ++;
vége --;
}
Ezért a program az egész számot veszi bemenetként, és lefoglalja a memóriát a karakterlánc-reprezentációhoz. Ezt követően meghívja az itoa-t, hogy az egész számot karakterláncsá alakítsa, és kiírja az eredeti egész számot. Végül felszabadítja a lefoglalt memóriát. Például adjunk egy számot a programnak:
Ha azonban nem egész számot ad meg, a program a következő eredményt jeleníti meg:
Következtetés
Így egyszerűen implementálhatja és használhatja az itoa függvényt C-ben. Részletes példát használtunk, amely több függvényt tartalmaz az egész szám karakterláncsá alakításához. Ne feledje, ez csak egy példa, de az itoa függvényt különféle funkciókkal kombinálhatja, és csodálatos programokat írhat.