字串轉化為整數值

2021-08-13 22:49:12 字數 928 閱讀 2224

思路分析

首先判斷字串是否為空,返回0

考慮前面的是否是空格,使用trim()去掉,然後判斷長度是否為0,是的話,返回0

判斷第乙個字元是不是+和-,設定變數sign記錄

迴圈取得字串的數字,考慮字串中有非數字,遇到就退出,保留前面的數字

考慮溢位的情況,溢位返回integer的最大值或最小值

public

class

solution

//去掉空格的情況

str = str.trim();

if(str.length() == 0)

return

0; //正負數標誌

int sign = 1;

intindex = 0;

if(str.charat(index) == '+')

index ++;

else

if(str.charat(index) == '-')

//取得數字部分,遇到溢位和非數字退出

long number = 0;

for(; index

< str.length();index++)

number = number * 10 + (str.charat(index) - '0');

if(number >= integer.max_value)

break;

}if(number * sign <= integer.min_value)

return integer.min_value;

if(number * sign >= integer.max_value)

return integer.max_value;

return (int) number * sign;

}}

整數轉化為字串和字串轉化為整數

整數轉化為字串 includeint main temp i 0 為什麼等於0就可以,因為將temp定義為字串陣列後,等號右邊的數相當於ascii碼值,0就相當於 0 如果寫為61,輸出就為 12345 printf s temp i i 1 while i 0 str j temp i str j...

字串轉化為數值

工作時遇到這樣的乙個情況 伺服器a向b傳送請求並接受結果,耗時300ms,伺服器b從接受請求到傳送完畢,耗時100ms。由於是內網,不可能有200ms的網路延遲。後經檢測,是因為傳輸時用的是字串格式,解析時用了sscanf造成的。由於sscanf要考慮到變參問題,並且接受的種類更加豐富 相對於str...

字串轉化為整數

字串轉化為整數需要注意以下幾個問題 1.檢測非法輸入 2.空串 空指標 3.判斷數字的正負 4.處理數字的上下溢位。因為整數是有範圍的。include long long strtointcore const char digit,bool minus enum status int g nstat...