数字字符串转换为整型数(C语言)

从键盘输入一串字符(假设字符数少于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++无法运行?

所以还请哪位大佬知道,给小弟说说  拜托

猜你喜欢

转载自blog.csdn.net/qq_44075791/article/details/86244896