做不出来,能帮忙解答一下吗?谢谢

编写程序将数字字符串转成整数, 要求数字遇到非字符结束。 如输入-123d456 输 出整数-123。 int ston( _) { int n, flag; flag=1; if( *s = =' +' ) s++; else if( *s = =' - ' ) { flag= - 1; s++; } n =0; while( *s!=' \0' &&( *s> =' 0' &&*s< =' 9' )) { n =n *10+ _; s++; }return _; }main( ) { char s[5]; int n; gets(s); n =ston(s); printf("\n %d \n", n); }

按字符判断,遇到不是数字,则输出。

代码及填空如下所示,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
int ston(char* s)//填空1
{
	int n,flag; 
	flag=1; 
	if(*s =='+') 
		s++; 
	else if( *s =='-' ) 
	{
		flag= -1; 
		s++; 
	} 
	n =0; 
	while(*s!='\0' &&( *s>='0' &&*s<='9' )) 
	{
		n =n *10 + (*s); //填空2 
		s++; 
	}
	return flag * n;//填空3
}
void main() 
{
	char s[5]; 
	int n; 
	gets(s); 
	n =ston(s);
	printf("\n %d \n", n); 
}