编码实现字符串转整型的函数(实现函数atoi的功能),据说是神州数码笔试题。如将字符串 ”+123”-->123, ”-0123”-->-123, “123CS45”-->123, “123.45CS”-->123, “CS123.45”-->0

admin2019-03-29  79

问题 编码实现字符串转整型的函数(实现函数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=%s\tval=%d\n", str, val); return getchar(); }

解析
转载请注明原文地址:https://jikaoti.com/ti/1ag7FFFM
0

最新回复(0)