编码实现字符串转整型的函数

进修社 人气:1.86W

编码实现字符串转整型的函数(实现函数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);

}