#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"); }