#include "stdio.h" #include "ctype.h" #include "stdlib.h" /* Converts a character string into an int or long 将一个字符串转化为整数 */ int my_atoi(char s[]) { int i,n,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=10*n+(s[i]-'0'); //将数字字符转换成整形数字 return sign*n; } /* Converts an int or long into a character string 将一个整数转化为字符串 */ void my_itoa(int n,char s[]) { int i,j,sign; if((sign=n)<0) //记录符号 n=-n; //使n成为正数 i=0; do{ s[i++]=n%10+'0'; //取下一个数字 }while((n/=10)>0); //循环相除 if(sign<0) s[i++]='-'; s[i]='/0'; for(j=i-1;j>=0;j--) //生成的数字是逆序的,所以要逆序输出 printf("%c",s[j]); } void main() { int n; char str[100]; my_itoa(-123,str); printf("/n"); printf("%d/n",my_atoi("123")); system("pause"); }