请高手帮我用c语言编个程序,将一个数字字符串改写成数字,例如将"-1234"改写成-1234

来源:百度知道 编辑:UC知道 时间:2024/06/06 14:10:21

一下代码对整数有效 但是-023 只能转化为-23
int str2num(char str[])
{
int i=0,num=0,flag=0;
if(str[0]=='-')
{
i=1;
flag=1;
}
for(;i<strlen(str);i++)
{
num=num*10+str[i];
}
if(flag==1)
{
num=num*(-1);
}
return num;
}

void main()
{
char a[]="-153",b[]="0456";
printf("%s:%d\n%s:%d",a,str2num(a),b,str2num(b));
}

烦请楼主测试

头文件是"stdlib.h"

atoi
功 能: 把字符串转换成整型数
用 法: int atoi(const char *nptr);

我只给出定义的函数:
long fun(char *p)
{
long s=0,t;
int i=0,j,n=strlen(p),k,s1;
if(p[0]=-'-')
i++;
for(j=i;j<=n-1;j++)
{
t=p[j]-'0';
s1=10;
for(k=j;k<n-1;k++)
t*=s1;
s+=t;
}
if(p[0]=='0')
return -s;
else
return s;