#include<stdio.h>
#define M 10
int my_atoi(char s[])
{
     int flag=1;
     int num=0;
     int i=0;
     while((s[i]=getchar())!='\n')
     {
          if(s[i]>='0'&&s[i]<='9')
               num=(num*10)+(s[i]-'0');
          i++;
     }
     if(s[0]=='-')
          flag=-1;
     return flag*num;
}
int main()
{
     int ret=0;
     char arr[M]={0};
     ret=my_atoi(arr);
     printf("%d",ret);
     return 0;
}

方法二(指针)
#include <stdio.h>
#include<assert.h>
#include<stdlib.h>
int my_atoi(char *str)
{
	int flag=1;
	int num=0;
	assert(str);              //保证str数组非空
	while (isspace(*str))
	{
		str++;
	}
	if (*str=='-')
	{
		flag=-1;
	}
	if (*str=='-'||*str=='+')
	{
		str++;
	}
	while (*str!='\0')
	{
		num=num*10+(*str-'0');
		str++;
	}
	return flag*num;

}
int main ()
{
	char *str="     -1234";
	int ret;
	ret=my_atoi(str);
	printf("%d\n",ret);
	return 0;
}