問題描述:
該題目是對一般的字串轉整型函式的提公升。該題目可以擴充套件對任意進製的字串,轉換成整型值。比如:我們知道以0開頭的為八進位制,以0x開頭的為十六進製制。在這裡我們還可以規定以其他符號開頭的字串為某進製,比如:規定以「*」開頭的為二進位制等等。
我們需要做的就是將這些不同進製的字串,轉換成相應的整型值。超出整型值範圍的返回0。
測試用例:
**開頭的注釋部分
**實現:
#include
#include
#include//isalpha()
// "4567890";
// "3456789876543234567876543"
// "0234567890"; //八進位制,只處理 0234567
// "0x5678asdf"; //十六進製制,只處理0x5678a
// "-6789";
// "+678";
// "7809.890"; //取整
// "wefasd"; // 0
int atoi(char *str,int n) //n=2,8,16(進製)
else
if( a < tmp) //超出整型所能表示的最大值
p++;
}
return a;
}int strtoint(char *str)
return a;
}int main()
整型轉字串
專案中要用到檔案操作輸出一些結構體資訊,包括一些int型的數字,為了直觀,需要轉換成字串,雖然c語言提供了這種函式,但還是想自己從底層造個輪子。思路 把int的位數記住,申請位數加1的記憶體 多乙個存 0 把每乙個數字轉換成字元存入。整型轉字串.cpp 此檔案包含 main 函式。程式執行將在此處開...
C 字串轉整型
最近做專案,需要用到字串轉整型,因為字串是有可能任意的,所以轉整型的時候要先對字串進行判斷。網上所用的字串轉整型大概有 atoi 正規表示式,stoi,sscanf等等。atoi 原型 int atoi const char nptr 引數nptr字串,如果第乙個非空格字元存在,是數字或者正負號則開...
任意長度十進位制字串轉十六進製制字串
所謂十進位制轉換十六進製制,其實就是要了解轉換原理,再把數學邏輯翻譯成 邏輯 比如十進位制字串 12345678 轉換之後為 bc614e 順帶普及下十六進製制值 十六進製制,顧名思義,就是每個字元位的取值範圍為 0 15 其中 十進位制值 十六進製制值 0 0 1 1 2 2 3 3 4 4 5 ...