字串(任意進製)轉整型

2021-07-09 10:57:44 字數 833 閱讀 2709

問題描述:

該題目是對一般的字串轉整型函式的提公升。該題目可以擴充套件對任意進製的字串,轉換成整型值。比如:我們知道以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 ...