C/C++編程筆記:C語(yǔ)言字符串與整數(shù)之間的轉(zhuǎn)換,小白必會(huì)知識(shí)!
在C語(yǔ)言中,我們經(jīng)常面臨需要將字符串轉(zhuǎn)換為整型,以及將整型轉(zhuǎn)化為字符串的問(wèn)題。

將字符串轉(zhuǎn)換為整數(shù)的函數(shù)在stdlib.h中定義:
int atoi(const char *str);
atoi函數(shù)會(huì)跳過(guò)str中前面出現(xiàn)的空格,從第一個(gè)數(shù)字開(kāi)始轉(zhuǎn)換。下面是我的實(shí)現(xiàn):

要注意的幾點(diǎn):
1.參數(shù)檢驗(yàn)。始終要放在最開(kāi)始,在輸入是指針的情況下,永遠(yuǎn)不要忘記首先檢驗(yàn)是否是NULL指針;
2.字符串開(kāi)始處的空格(我還加入了制表符)要注意跳過(guò);
3.符號(hào),不要忘了數(shù)字字符串第一個(gè)字符可能出現(xiàn)加號(hào)和減號(hào)!
對(duì)于將數(shù)字轉(zhuǎn)換為字符串,c標(biāo)準(zhǔn)中并沒(méi)有定義(itoa只是在一些編譯器中自己定義)。c標(biāo)準(zhǔn)中沒(méi)有定義的原因我覺(jué)得是數(shù)字轉(zhuǎn)成字符串可以使用sprintf格式化輸出函數(shù)來(lái)完成。當(dāng)然我們可以自己編寫(xiě)一個(gè)itoa函數(shù)。這里的參數(shù)原型參照的是vc中定義的itoa:

當(dāng)然,一般情況下我們使用sprintf就可以完成任務(wù)啦:
char num[32];
sprintf(num,"%d",12345);
?c/c++中把字符串轉(zhuǎn)換成整數(shù),把整數(shù)轉(zhuǎn)換成字符串
#include <stdlib.h>.?? 這個(gè)是頭文件
long atoi(char *);?? 這個(gè)是把字符轉(zhuǎn)換整數(shù)
double atof(char *); 這個(gè)是轉(zhuǎn)換浮點(diǎn)
char itoa(int i); 把整數(shù)轉(zhuǎn)為字符串
部分網(wǎng)友寫(xiě)的思路源碼,把整數(shù)換成字符,sign判斷正負(fù)數(shù),不過(guò)這............

還有一個(gè) ,這個(gè)函數(shù)有3個(gè)參數(shù),第一轉(zhuǎn)換的數(shù),第二是轉(zhuǎn)換后的字符,第三是進(jìn)制,不過(guò)這個(gè)函數(shù)沒(méi)有把STRING倒序

下面這個(gè)用遞歸算法,解決倒序問(wèn)題。VC6.0上測(cè)試也可用。

希望對(duì)你有幫助~

學(xué)習(xí)C/C++編程知識(shí),提升C/C++編程能力,歡迎關(guān)注UP一起來(lái)成長(zhǎng)!
另外,UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~