輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串「12345」,則輸出整數「12345」。
本題看似很簡單,依次掃瞄字串,對於每次掃瞄到的字元,把在之前得到的數字乘10再加上當前字元表示的數字值即可。但是如果把所有特殊情況都考慮進去並分別給出處理,也不是非常容易的。
考慮以下測試用例:
1 考慮數字的符號:輸入字串為正數,負數,0。
2 考慮溢位。 考慮待處理資料的最大上界與最小下界。若用int儲存(32位),則為0x7fffffff與0x10000000(signed int)
3 若為異常輸入。包括輸入字串為null指標,輸入字串為空字元,輸入字串中有非數字字元。
**如下:
#include "stdafx.h"
#include enum status ;
int g_nstatus=kinvalid;
using namespace std;
long long strtointcore(const char* digit,bool minus)
digit++;
} else
}if(*digit=='\0')
return num;
}int strtoint(const char* str)
else if(*str=='-')
if(*str!='\0')
}return (int) num;
}int _tmain(int argc, _tchar* argv)
{ //char s="1234567";
//char s="-123456789";
//char s="0";
//char s="123456789123456789";
char s="-12345678";
//char* s=null;
//char s="-dlakjl";
int num=0;
num=strtoint(s);
cout<<"num= "<
面試題 字串翻轉
使用 c c 編寫函式,實現字串反轉,要求不使用任何系統函式,且時間複雜度最小,函式原型 char reverse str char str 使用c c 編寫函式,實現字串反轉,要求不使用任何系統函式,且時間複雜度最小,函式原型 char reverse str char str include i...
字串面試題 字串逆序
字串逆序可以說是最經常考的題目。這是一道入門級的題目。給定乙個字串s,將s中的字元順序顛倒過來,比如s abcd 逆序後變成s dcba 基本上沒有這麼考的,放在這裡主要是為了和後面的原地逆序做個對比。很簡單,直接分配乙個與原字串等長的字元陣列,然後反向拷貝一下即可。char reverse cha...
字串轉化為數字
如何把entry中輸入的字串轉化為對應的數字 例如,如果輸入為s 0 12 3 40 怎麼把它轉化為對應的數字呢?根據需要,胡亂寫了 記錄在此。功能 把字串轉化為數字列表 輸入s 字串 輸出 數字列表 def strtonum s s 0 12 3 40 p 用來存放字串中的數字 0,1,2,3,4...