第43题
请编写一个函数fun,它的功能是:将一个表示正整数的数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转换为整数值1234。
函数fun中给出的语句仅供参考。
注意:
部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
/**********code.c**********/
#include <stdio.h>
#include <string.h>
long fun(char *p)
{
int i,len;/* len为串长*/
long x=0;
len=strlen(p);
/*以下完成数字字符串转换为数字,注意字符’0’不是数字0*/
return x;
}
void main()
{
char s[6];
long n;
printf("Enter a tring:\n");
gets(s);
n = fun(s);
printf("%ld\n",n);
}
参考答案:
int flag=1;
i=0;
if(*p=='-')/*p表示负数,置flag值为-1*/
{
p++;
i++;
flag= -1;
}else if(*p=='+')/*p表示正数,置flag值为1*/
{
p++;
i++;
}
for(;i<len;i++)
{
x=x*10+*p-'0';/*将字符串转换成相应的整数*/
p++;
}
x = x*flag;