打家来讨论下 希望各位可以提供个正解 谢谢 关于字符串处理的问题
请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C 语言提供的将字符串转换为整数的函数)。例如,若输入字符串"-1234",则
函数把它转换为整数值-1234
#include <stdio.h>
#include <string.h>
long fun ( char *p)
{
int len, t; /* len 为串长,t 为正负标识*/
long x=0;
len=strlen(p);
if(p[0]=='-')
{ t=-1; len--; p++; }
else t=1;
/* 以下完成数字字符串转换为一个数字*/
while(*p) x = x*10-48+(*p++);//这里想当纠结 就是不知道为什么 希望各位给个正解
return x*t;
}
main() /* 主函数*/
{ char s[6];
long n;
printf("Enter a string:\n") ;
gets(s);
n = fun(s);
printf("%ld\n",n);
}