分类：教育/科学-理工学科-工程技术科学
问题：字符串，整数？/*编写字符串转换为整数函数longintfun( 
/*编写字符串转换为整数long int fun(char *str).该函数将字符数组str中的数字字符串转换为整型数并返回。转换时遇到第一个非数字字符即转换到此结束(识别开始的负号).要求用指针自加运算,在main（）中实现输入与输出.如函数fun("345e4")的返回值为345,fun("345.123")的返回值为345,fun("-345-2")的返回值为-345,fun("e345"),返回值为0.*/#include<stdio.h>long fun(char *str){}main(){char/*编写字符串转换为整数long int fun(char *str).该函数将字符数组str中的数字字符串转换为整型数并返回。转换时遇到第一个非数字字符即转换到此结束(识别开始的负号).要求用指针自加运算,在main（）中实现输入与输出.如函数fun("345e4")的返回值为345,fun("345.123")的返回值为345,fun("-345-2")的返回值为-345,fun("e345"),返回值为0.*/#include<stdio.h>long fun(char *str){}main(){char a[20]; gets(a); printf("%ld\n",fun(a));}
回答：long fun(char *str)
{int t=0;
 long m=1,n;
 if(*str=='-') t=1,str++;
 for(n=0;*str>='0'&&*str<='9';str++)
   n*=10, n+=*str-48;
 if(t) n=-n;
 return n;
}