#include <stdio.h> #include <string.h> long fun ( char *p) { int len,t; long x=0; len=strlen(p); if(p[0]=='-') {t=-1;len--;p++;} else t=1; while(*p) x=10*x+(*p-48),p++; return x*t; } main() /* 主函數 */ { char s[6];void NONO (); long n; printf("Enter a string:\n") ; gets(s); n = fun(s); printf("%ld\n",n); NONO ( ); } void NONO () {/* 本函數用於打開文件,輸入數據,調用函數,輸出數據,關閉文件。 */ FILE *fp, *wf ; int i ; char s[20] ; long n ; fp = fopen("in.dat","r") ; wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(fp, "%s", s) ; n = fun(s); fprintf(wf, "%ld\n", n) ; } fclose(fp) ; fclose(wf) ; }
第二種解法:
long fun(char *p)
{
long n=0;
int flag=1;
if(*p=='-')
{p++;flag==-1;}
else
if(*p=='+')
p++;
while(*p!='\0')
{
n=n*10+*p-'\0';
p++;
}
return n*flag;
}