对比《学习辅导》中的参考答案做出如下改进:
1.使用单独的函数处理,而不是在main()函数里处理。
char s[50];
int n[20];
int l = strlen(s);
int m = func(s, n, l);
int func(char *s, int *n, int l)
将指向存放输入字符串的字符数组的指针、指向存放转换结果的整型数组的指针、存放输入字符串的字符数组的长度作为实参送给func()函数,func()函数返回存放转换结果的整型数组的长度。
2.只将连续的(2个及以上)数字字符转换为整数。
根据题意如果严格处理,则应将连续的(2个及以上)数字字符转换为整数。《学习辅导》中使用变量 j 标记连续出现的数字字符,当 j>0 时即将数字字符转换为整数,改进为当 j>=2 时才转换为整数。
3.使用 pow(x,y) 函数将数字字符转换为整数。
原参考答案使用了一个 while 循环来计算:
while (k < j)
{
e10