#include <stdio.h> int my_atoi(char s[5]) { int flag= 1;//在這作為判斷'-'的開關 int ret=0; char *p=s; if (*p=='-')//如果第一個字符為'-',那麼flag開關就會打開,置成-1; { flag=-1; } if (*p == '+'||*p=='-')//如果第一個字符為'-'或者為'+',那麼不再做處理,直接跳到第二個字符 { p++; } while(*p!='\0') { if((*p>='0')&&(*p<='9'))//因為要求是整形的數字,所以只處理0~9之間的數字 { ret=ret*10+*p-'0';//得到每一位,然後按照十進制中的規律累加起來 p++; } } return flag*ret; } int main() { int ret= 0; char s[5]; gets(s); ret=my_atoi(s);//接收atoi函數的返回值 printf("%d\n",ret); return 0; }