c isalpha和isdigit while循环

时间:2015-10-17 18:53:55

标签: c while-loop fgets

如何将isalpha和isdigit置于while(1)循环中?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int main()
{
    int i;
    char type[256];
    printf("You can type a number or a word. Type exit to exit! \n");
    printf("Type: ");

    fgets (type, 256, stdin);

    if (isalpha(type[i]))
    {
            printf("Typed text: %s\n", type);
        if((strcmp(type,"exit\n") == 0))
        {
            printf("Exiting...\n");
            exit(1);
        }
    }
    else if (isdigit(type[i]))
    {
            printf("Typed number: %s\n", type);
    }
    else
    {
        printf("Typed: %s\n", type);
        printf("Its not a letter or number...?!\n");
    }
}

我尝试在代码的开头添加while(1)并在代码结束时关闭它,但是一旦我输入数字或字母,控制台就会崩溃......有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:2)

你的问题不是一个循环问题,你需要给i一个值,因为它是未定义的,你会得到一个很好的崩溃。请替换

int i;

int i=0;