c语言 如何做到只能输入数字,输入其他的,比如字母。就会提示重新输入。

2025-01-07 02:09:43
推荐回答(4个)
回答1:

将你的test1函数更改如下:

int test1()

{

    char s[20];

    int num = 0,n,len,i;

    while(1) {

        printf("请输入一个整数 : ");

        gets(s);

        len = strlen(s);

        //for(n = 0; s[n] == '0'; ++n);

        

        num = 0; //每次输入前,要确保num=0

        

        for(i = len-1; i >= 0; --i)

        {                                       

            if((s[i] < '0') || (s[i] > '9'))

            {

                printf("输入错误,重新输入。\n");

                break;                              //

            }

            num = 10 * num + s[i] - '0';                                    //

        }

        if(i < 0)

            break;

    }

    //for(n = 0; s[n] == '0'; ++n);

    input = num ;

    return 0;

}

回答2:

#include

#include

#include

#include //here



int main()

{


  while(true)

  {


char s[20];

    int num = 0,n,len,i;

    i=0;

printf("请输入一个整数 : ");

    gets(s);

    len = strlen(s);

    for(i=0;i

    {

       if (!isdigit(s[i]))

       break;


    }

    if(i==len)

    {

        printf("您输入的是%s\n",s);

        break;

    }


  }


}


回答3:

for(i = len - 1; i >= n; --i) 改成for(i = 0 ; i < n; i ++)

你是不是想说这个意思啊

回答4:

用 atoi函数 判断字符串是否为“纯数字”