从键盘输入一串字符(假设字符数少于8个),以回车表示输入结束,编程将其中的数字部分转换为整型数并以整型的形式输出。
函数原型为 int Myatoi(char str[]);
其中,形参数组str[]对应用户输入的字符串,函数返回值为转换后的整型数。
解题思路的关键是:1)判断字符串中的字符是否是数字字符;2)如何将数字字符转换为其对应的数字值;3)如何将每一个转换后的数字值加起来形成一个整型数。
程序运行结果示例1:
Input a string:7hg09y↙
709
程序运行结果示例2:
Input a string:9w2k7m0↙
9270
程序运行结果示例3:
Input a string:happy↙
0
#include <stdio.h>
int Myatoi(char str[])
{
int ret = 0;
if (*str == '\0')
{
return ret;
}
char* end = str;
while (*(++end) != '\0');
int i = 1;
while (end != str - 1)
{
if (*end >= '0' && *end <= '9')
{
ret += (int)(*end - '0') * i;
i *= 10;
}
end--;
}
return ret;
}
int main()
{
char str[8] = {0};
printf("Input a string:");
scanf("%7s", str);
int ret = Myatoi(str);
printf("%d\n",ret);
return 0;
}