Kuinka käyttää Itoa-funktiota C:ssä

Kuinka Kayttaa Itoa Funktiota C Ssa



C-ohjelmointikieli lanseerattiin yli viisi vuosikymmentä sitten. Siitä lähtien se on saavuttanut valtavan suosion ohjelmointimaailmassa. Se erottuu muista kielistä ominaisuuksiensa, kuten rakenteellisen yksinkertaisuuden, toimintojen, siirrettävyyden, tehokkaan muistinhallinnan jne. ansiosta. Huolimatta useista muista ominaisuuksista, C:n toiminnot ovat merkittävin ominaisuus, joka auttaa monia käyttäjiä luomaan vankat koodinpätkät.

Lisäksi itoa on laajalti käytetty epästandardi toiminto, joka toimii tietotyyppimuuntimena. Se ottaa tietotyypin int syötteenä ja muuntaa sen merkkijonoksi. Monet teistä eivät kuitenkaan tiedä sen käyttöä. Siksi tämä opas selittää ytimekkäästi, kuinka itoa-funktiota käytetään C:ssä ilman vaivaa.







Kuinka käyttää Itoa-funktiota C:ssä

Aloitetaan perusasioista. Tässä on yksinkertainen syntaksi itoa-funktiolle:



int pää ( ) {

int yhdellä = 12345 ;
hiiltyä str [ kaksikymmentä ] ;
hukkunut ( yhdellä , str , 10 ) ;
printf ( 'Kokonaisluku: %d \n Merkkijono: %s \n ' , yhdellä , str ) ;
palata 0 ;


}

Annetussa ohjelmassa tiedot ovat seuraavat:



  1. num on kokonaisluku
  2. str on hahmo
  3. 10 on basso

Nyt mennään eteenpäin, kirjoitetaan ohjelma ja toteutetaan itoa-funktio. Meidän on esimerkiksi kirjoitettava ohjelma, joka muuttaa syötetyt numerot merkkijonoksi.





#include

#include

mitätön hukkunut ( int yhdellä , hiiltyä * str , int pohja ) {

int i = 0 ;
int on Negatiivinen = 0 ;

jos ( yhdellä == 0 ) {
str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
palata ;
}


jos ( yhdellä < 0 && pohja != 10 ) {

on Negatiivinen = 1 ;
yhdellä = - yhdellä ;
}

sillä aikaa ( yhdellä != 0 ) {
int rem = yhdellä % pohja ;

str [ i ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'a' : rem + '0' ;

yhdellä = yhdellä / pohja ;
}

jos ( on Negatiivinen && pohja == 10 )
str [ i ++ ] = '-' ;

str [ i ] = ' \0 ' ;

int alkaa = 0 ;
int loppu = i - 1 ;


sillä aikaa ( alkaa < loppu ) {

hiiltyä lämpötila = str [ alkaa ] ;
str [ alkaa ] = str [ loppu ] ;
str [ loppu ] = lämpötila ;
alkaa ++;
loppu --;
}
}

int pää ( ) {
int yhdellä ;
printf ( 'Syötä kokonaisluku:' ) ;

jos ( scanf ( '%d' , & yhdellä ) != 1 ) {
fprintf ( stderr , 'Virheellinen syöte. Anna kokonaisluku. \n ' ) ;
palata EXIT_FAILURE ;
}

int max_size = snprintf ( TYHJÄ , 0 , '%d' , yhdellä ) + 1 ;
hiiltyä * str = ( hiiltyä * ) malloc ( max_size ) ;

jos ( str == TYHJÄ ) {
fprintf ( stderr , 'Muistin varaaminen epäonnistui \n ' ) ;
palata EXIT_FAILURE ;
}


hukkunut ( yhdellä , str , 10 ) ;

printf ( 'Kokonaisluku: %d \n Merkkijono: %s \n ' , yhdellä , str ) ;

vapaa ( str ) ;

palata 0 ;


}

Edellisessä ohjelmassa itoa (int num, char *str, int base) on itoa-funktio. Lisäksi seuraava syntaksi määrittää tulokseen suoraan nollan, kun myös syötenumero on nolla:

jos ( yhdellä == 0 ) {

str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
palata ;


}

Kun syötenumero on negatiivinen ja kantaluku ei myöskään ole 10, seuraavat ohjelmarivit asettavat negatiivisen lipun:



jos ( yhdellä < 0 && pohja != 10 ) {

on Negatiivinen = 1 ;
yhdellä = - yhdellä ;

Seuraava silmukka käsittelee kaikki numerot ja muuntaa ne vastaavaksi merkiksi. Tästä syystä, jos kantaluku on suurempi kuin 10, ohjelma käyttää kirjaimia 'a' - 'f' numeroille 10 - 15.

}

sillä aikaa ( yhdellä != 0 ) {

int rem = yhdellä % pohja ;

str [ i ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'a' : rem + '0' ;

yhdellä = yhdellä / pohja ;

}

Kun luku on alun perin negatiivinen ja kantaluku on 10, ohjelma lisää negatiivisen merkin tulosmerkkijonoon.

jos ( on Negatiivinen && pohja == 10 )

str [ i ++ ] = '-' ;

Seuraavat rivit päättävät tulosmerkkijonon ja kääntävät sen sitten päinvastaiseksi, koska numerot saadaan käänteisessä järjestyksessä muunnosprosessin aikana:

str [ i ] = ' \0 ' ;

// Kääntää merkkijonoa

int alkaa = 0 ;

int loppu = i - 1 ;

sillä aikaa ( alkaa < loppu ) {

hiiltyä lämpötila = str [ alkaa ] ;
str [ alkaa ] = str [ loppu ] ;
str [ loppu ] = lämpötila ;
alkaa ++;
loppu --;


}

Tästä syystä ohjelma ottaa kokonaisluvun syötteenä ja varaa muistin merkkijonoesitystä varten. Sen jälkeen se kutsuu itoaa muuntaakseen kokonaisluvun merkkijonoksi ja tulostaa alkuperäisen kokonaisluvun. Lopuksi se vapauttaa varatun muistin. Esimerkiksi, annetaan numero ohjelmalle:

Jos kuitenkin syötät ei-kokonaisluvun, ohjelma näyttää seuraavan tuloksen:

Johtopäätös

Näin voit helposti toteuttaa ja käyttää itoa-funktiota C:ssä. Käytimme yksityiskohtaista esimerkkiä, joka sisältää useita toimintoja kokonaisluvun muuntamiseen merkkijonoksi. Muista, että se on vain esimerkki, mutta voit yhdistää itoa-funktion useisiin eri toimintoihin kirjoittaaksesi upeita ohjelmia.