带开关的字符串指针?

时间:2018-03-08 16:45:16

标签: c pointers

我的字符串指针有问题,尤其是字符空间。

这是我目前的代码:

int main()
{
    char *ch;
    ch=malloc(10*sizeof(char));
    puts("Type a string");
    printf("%s",ch);
    while(*ch)
    {
        switch(*ch)
        {
            case '0':puts("0"); ch++; break;
            case '1':puts("1"); ch++; break;
            case '2':puts("2"); ch++; break;
            case ' ':puts("espace"); ch++; break;
            default:ch++; break;
        }
    }

    return 1;
}

1 个答案:

答案 0 :(得分:0)

您需要使用scanf或任何其他合适的功能来获取用户输入。 read here how to use scanf.

使用scanf

的代码
int main()
{
    char *ch;
    ch=malloc(10*sizeof(char));
    puts("Type a string");
    scanf("%s",ch);
    while(*ch)
    {
        switch(*ch)
        {
            case '0':puts("0"); ch++; break;
            case '1':puts("1"); ch++; break;
            case '2':puts("2"); ch++; break;
            case ' ':puts("espace"); ch++; break;
            default:ch++; break;
        }
    }

    return 1;
 }

请注意,我只更正了代码中的一个问题,即成功获取用户输入。