这是一个通用的基础程序,将数字字符串转换为整型数。
这个程序会去掉字符串开始的空格,并且能够转换带符号的整数。
该程序来自K&C的《C程序设计语言》一书。
程序如下:
/* 带符号的atoi,跳过前面的空格 */#include关键代码:#include int atoi(char s[]){ int n; int i; int sign; for(i=0;isspace(s[i]);i++) ; sign = (s[i]=='-')? -1:1; if(s[i] =='+'||s[i]=='-') i++; for(n=0;isdigit(s[i]);i++) n = n*10 + s[i]-'0'; n = sign * n; return n;}int main(void){ printf("%d\n", atoi(" 356")); printf("%d\n", atoi(" 1234567")); printf("%d\n", atoi(" -356")); printf("%d\n", atoi(" -1234567")); return 0;}
#includeint atoi(char s[]){ int n; int i; int sign; for(i=0;isspace(s[i]);i++) ; sign = (s[i]=='-')? -1:1; if(s[i] =='+'||s[i]=='-') i++; for(n=0;isdigit(s[i]);i++) n = n*10 + s[i]-'0'; n = sign * n; return n;}
运行结果:
356 1234567 -356 -1234567