編碼實現字串轉整型的函式

才智咖 人氣:1.92W

編碼實現字串轉整型的函式(實現函式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);

}