關於將乙個字串轉換為整數的問題

2021-07-12 00:26:40 字數 846 閱讀 9427

當我看到這麼乙個問題時,我覺得是乙個很簡單的問題,立刻就會想到用乙個while迴圈遍歷整個字串,將乙個個字元轉化為數字,關於這種問題已經不是第一次遇到了,所以自信滿滿的寫好然後去網上尋找答案。

這或許就是理想和現實的差距,把自己寫的程式和標準答案一對,發現沒有乙個地方可以稱之為寫對。答案中提到了atoi函式,是乙個把字串轉換為整數的庫函式。

下面就是具體的實現:

long long strtointcode(const char *ptr, bool minus)

ptr++;

}else

}if (*ptr == '\0')

return num;

}int strtoint(const char *ptr)

else if (*ptr == '-')

if (*ptr != '\0')

}return (int)num;

}

一開始進入strtoint函式先判斷字串是否為空,若字串為空,則直接返回非法輸入。

enum state

;int sign = v_error;/*設定全域性變數判斷是否為非法輸入*/

不為空並且第乙個字元不為『\0』,則分情況第乙個字元為+或者-,則輸出的時候為正數和負數。然後進入strtointcode函式將字串轉換為數字,在這裡要考慮上溢位和下溢位。

if ((!minus && num > 0x7fffffff) \

|| (minus && num < (signed int)0x80000000))/*判斷是否上溢位或者上溢位*/

將乙個字串逆序

這個題要我自己寫還不太有思路,可能不會想到寫三個函式,而且這個 也沒有執行出來 include include include pragma warning disable 4996 有乙個字元陣列的內容為 student a am i 請你將陣列的內容改為 i am a student 要求 不能...

乙個字串轉化為整數

原博文位址 將字串轉化成數字要考慮很多問題 1,字串是否為空 2,字串的開頭有可能不是數字的字母形式,而是 或者 3,字串中有可能不是數字對應的字母 4,字串轉換之後有可能越界。下面給出 比較欣賞的是其中的assert.include include include using namespace ...

在乙個字串中尋找另外乙個字串

在乙個字串中尋找另外乙個字串 public class text foundit true break test system.out.println foundit?found it didn t find it 該段程式有點難以理解,主要就是if語句的理解,if searchme.charat ...