从键盘输入一串字符(假设字符数少于8个),以回车表示输入结束,编程将其中的数字部分转换为整型数并以整型的形式输出。
函数原型为 int Myatoi(char str[]);
其中,形参数组str[]对应用户输入的字符串,函数返回值为转换后的整型数。
解题思路的关键是:1)判断字符串中的字符是否是数字字符;2)如何将数字字符转换为其对应的数字值;3)如何将每一个转换
后的数字值加起来形成一个整型数。
#include<stdio.h>
#include<string.h>
int Myatoi(char str[8]);
int main()
{
char str[8];
printf("Input a string:");
scanf("%7s",str);
printf("%d\n",Myatoi(str));
return 0;
}
int Myatoi(char str[8])
{
int i;//虽然strlen()函数算出来的类型是unsigned int 型,
int j=0,b=1,sum=0;
int a[8]={0};
for(i=0;i<strlen(str);i++)
{
if(str[i]>=48&&str[i]<=57)
{
a[j]=(int)str[i]-48;
j++;
}
}
for(i=j-1;i>=0;i--)
{
sum=sum+a[i]*b;
b=b*10;
}
return sum;
}
但不知道为什么,把i设成unsigned int 型,VC++无法运行?
所以还请哪位大佬知道,给小弟说说 拜托