程序如下:
#include <ctype.h>
int change(char a[ ])
{
int i,sign,n;
i=0;
if a[i]='-' sign=-1;
else sing=1;
if (a[i]='-' || a[i]='+')
i++;
for (n=0 ; isdigit(a[i]) ; i++ ;)
n=10*n+a[i]-'0';
return sign*n;
}
新函数:
isdigit( ) 判断字符是否为数字,如果是返回0,如果不是返回非零数。
剖析:
这是个记数的程序(在C语言中已经编译好的程序,原名atoi[( ))。在C语言中,输入的任何东西都是字符。这个程序就是把输入的自然数(a[ ] ,类型是char)改成int。程序分两块:
·判断正负
·改变形式
这两块中还包含一个if语句,用处是将标记 i 跳过最开头的-或+。