一段实现atoi()的程序,结果错误……帮看一下
#include <stdio.h>#include <ctype.h>#include <stdlib.h>int myatoi(const char *str);int main(void){ int num; char st[21]; puts("请输入要转换成数字的字符串"); gets(st); num = myatoi(st); printf("string = %s,integer = %d",st,num); return 0; }int myatoi(const char *str){ int number,i; int sum = 0; if (str == NULL) exit(EXIT_FAILURE); for(i = 0;isspace(str[i]);i++) ; number = (str[i] == '-') ? -1 : 1; //负号为-1,正号或数字为1 //puts("2"); if(str[i] == '-' || str[i] == '+') //跳过正负号 i++; //puts("3"); if(isdigit(str[i])) { while(isdigit(str[i])) { sum = sum * 10 + (str[i] - 'c'); i++; } number *= sum; //puts("4"); return number; } else number = 0; //puts("5"); return number;}