將字串轉換為整數
阿新 • • 發佈:2019-02-08
這是一道經典的面試題,在收到這樣一道題時我們不要急於動手,先思考一下這道題的解決思路:
1.在函式呼叫時我們需要用指標來接收陣列的地址,那麼指標是否需要判空?
2.如果獲取的字串起始位出現“+”"-"號該如何處理?
3.如果獲取到的並非數字字串該如何處理?
4.如果獲取的字串正確,該如何返回成整數形式?
5.如過獲取的字串帶符號,返回的整數是否應該變為負數?
理清了思路,下面我們開始寫程式碼
#include<stdio.h> #include<stdlib.h> int StrToInt(char *string) { if (string == NULL) { return 0; } if (*string == '-' || *string == '+') { string++; } int number = 0; while (*string != 0) { if (*string<'0' || *string>'9') { break; } number = number*10 + *string - '0'; string++; } if (*string == '-') { number = -number; } return number; } int main() { char str[10]; gets(str); printf("number is %d", StrToInt(str)); system("pause"); return 0; }