Как да използвате функцията Itoa в C

Kak Da Izpolzvate Funkciata Itoa V C



Езикът за програмиране C беше пуснат преди повече от пет десетилетия. Оттогава той придоби огромна популярност в света на програмирането. Той превъзхожда другите езици поради своите характеристики, включително структурна простота, функции, преносимост, ефективно управление на паметта и т.н. Въпреки че имат различни други функции, функциите в C са най-важните активи, които помагат на много потребители при писането на стабилни кодови фрагменти.

Освен това itoa е широко използвана нестандартна функция, която действа като конвертор на типове данни. Той приема типа данни int като вход и го преобразува в низ. Много от вас обаче не знаят как се използва. Следователно, това ръководство обяснява накратко как да използвате функцията itoa в C без проблеми.







Как да използвате функцията Itoa в C

Да започнем с основите. Ето простия синтаксис за функцията itoa:



вътр основен ( ) {

вътр никой = 12345 ;
въглен ул [ двадесет ] ;
удавени ( никой , ул , 10 ) ;
printf ( „Цяло число: %d Низ: %s ' , никой , ул ) ;
връщане 0 ;


}

В дадената програма подробностите са както следва:



  1. num е цяло число
  2. str е символът
  3. 10 е басът

Сега нека продължим напред, да напишем програма и да внедрим функцията itoa. Например, трябва да напишем програма, която да променя въведените числа в низа.





#include

#include

невалиден удавени ( вътр никой , въглен * ул , вътр база ) {

вътр аз = 0 ;
вътр е Отрицателен = 0 ;

ако ( никой == 0 ) {
ул [ аз ++ ] = '0' ;
ул [ аз ] = ' \0 ' ;
връщане ;
}


ако ( никой < 0 && база != 10 ) {

е Отрицателен = 1 ;
никой = - никой ;
}

докато ( никой != 0 ) {
вътр рем = никой % база ;

ул [ аз ++ ] = ( рем > 9 ) ? ( рем - 10 ) + 'а' : рем + '0' ;

никой = никой / база ;
}

ако ( е Отрицателен && база == 10 )
ул [ аз ++ ] = '-' ;

ул [ аз ] = ' \0 ' ;

вътр започнете = 0 ;
вътр край = аз - 1 ;


докато ( започнете < край ) {

въглен темп = ул [ започнете ] ;
ул [ започнете ] = ул [ край ] ;
ул [ край ] = темп ;
започнете ++;
край --;
}
}

вътр основен ( ) {
вътр никой ;
printf ( „Въведете цяло число:“ ) ;

ако ( сканиране ( '%д' , и никой ) != 1 ) {
fprintf ( stderr , „Невалиден вход. Моля, въведете цяло число. ' ) ;
връщане EXIT_FAILURE ;
}

вътр максимален_размер = snprintf ( НУЛА , 0 , '%д' , никой ) + 1 ;
въглен * ул = ( въглен * ) malloc ( максимален_размер ) ;

ако ( ул == НУЛА ) {
fprintf ( stderr , „Неуспешно разпределяне на памет ' ) ;
връщане EXIT_FAILURE ;
}


удавени ( никой , ул , 10 ) ;

printf ( „Цяло число: %d Низ: %s ' , никой , ул ) ;

Безплатно ( ул ) ;

връщане 0 ;


}

В предишната програма itoa (int num, char *str, int base) е функцията itoa. Освен това, следният синтаксис директно присвоява нула на резултата, когато входното число също е нула:

ако ( никой == 0 ) {

ул [ аз ++ ] = '0' ;
ул [ аз ] = ' \0 ' ;
връщане ;


}

Когато въведеното число е отрицателно и основата също не е 10, следните програмни редове ще зададат отрицателния флаг:



ако ( никой < 0 && база != 10 ) {

е Отрицателен = 1 ;
никой = - никой ;

Следващият цикъл обработва всички цифри и ги преобразува в съответен знак. Следователно, за бази, които са по-големи от 10, програмата използва буквите 'a' до 'f' за цифрите от 10 до 15.

}

докато ( никой != 0 ) {

вътр рем = никой % база ;

ул [ аз ++ ] = ( рем > 9 ) ? ( рем - 10 ) + 'а' : рем + '0' ;

никой = никой / база ;

}

Когато числото първоначално е отрицателно и основата е 10, програмата ще добави отрицателния знак към резултатен низ.

ако ( е Отрицателен && база == 10 )

ул [ аз ++ ] = '-' ;

Следните редове завършват резултантния низ и след това го обръщат, тъй като цифрите се получават в обратен ред по време на процеса на преобразуване:

ул [ аз ] = ' \0 ' ;

// Обърнете низа

вътр започнете = 0 ;

вътр край = аз - 1 ;

докато ( започнете < край ) {

въглен темп = ул [ започнете ] ;
ул [ започнете ] = ул [ край ] ;
ул [ край ] = темп ;
започнете ++;
край --;


}

Следователно програмата приема цялото число като вход и разпределя паметта за низовото представяне. След това извиква itoa, за да преобразува цялото число в низа и отпечатва оригиналното цяло число. Накрая освобождава разпределената памет. Например, нека дадем номер на програмата:

Ако обаче въведете нецяло число, програмата ще покаже следния резултат:

Заключение

Ето как можете лесно да внедрите и използвате функцията itoa в C. Използвахме подробен пример, който съдържа множество функции за преобразуване на цяло число в низ. Не забравяйте, че това е само пример, но можете да комбинирате функцията itoa с различни функции, за да пишете невероятни програми.