編碼實現字串轉整型的函式(實現函式atoi的功能),據說是神州數碼筆試題。如將字串 ”+123”?123, ”-0123”?-123, “123CS45”?123, “123.45CS”?123, “CS123.45”?0
#include “stdafx.h”
int str2int(const char *str) { // 字串轉整型函式
int i=0, sign=1, value = 0;
if(str==NULL) return NULL; // 空串直接返回 NULL
if(str[0]==’-’ || str[0]==’+') { // 判斷是否存在符號位
i = 1;
sign = (str[0]==’-’ ? -1 : 1);
}
for(; str[i]>=’0′ && str[i]<=’9′; i++) // 如果是數字,則繼續轉換
value = value * 10 + (str[i] – ’0′);
return sign * value;
}
int main(int argc, char *argv[]) {
char *str = “-123.45CS67″;
int val = str2int(str);
printf(“str=%stval=%dn”, str, val);
}