使用字符分类函数实现atoi()函数。如果输入的字符串不是纯数字,该函数返回0。
以下为代码;
#include <stdio.h>
#include <ctype.h>
int myatoi(char st[]);
int main(void)
{
char a[40] = "12345";
char b[40] = "a1234";
char c[40] = "a";
printf("%d\n", myatoi(a));
printf("%d\n", myatoi(b));
printf("%d\n", myatoi(c));
return 0;
}
int myatoi(char st[])
{
int number = 0;
while(isdigit(*st))
{
switch(*st){
case '1': number = number * 10 + 1;
break;
case '2': number = number * 10 + 2;
break;
case '3': number = number * 10 + 3;
break;
case '4': number = number * 10 + 4;
break;
case '5': number = number * 10 + 5;
break;
case '6': number = number * 10 + 6;
break;
case '7': number = number * 10 + 7;
break;
case '8': number = number * 10 + 8;
break;
case '9': number = number * 10 + 9;
break;
}
st++;
}
return number;
}
这篇博客展示了如何利用C语言和字符分类函数`isdigit()`实现简单的atoi()功能。代码中,函数myatoi()遍历字符串,只处理纯数字的部分,遇到非数字字符则停止并返回已解析的数字。在示例中,对于纯数字字符串如12345,函数正确返回其数值,而对于包含非数字字符的字符串如a1234和a,则返回0。
177

被折叠的 条评论
为什么被折叠?



