c isalpha 和 isdigit while 循环

c isalpha and isdigit while loop

如何将 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) 并在代码末尾将其关闭,但是只要我输入数字或字母,控制台就会崩溃...有人可以帮我解决这个问题吗?

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

int i;

int i=0;