如果我不知道字符序列的长度,如何将“字符串”读取为多个字符?

时间:2018-11-15 11:15:35

标签: c

对不起,如果标题有点混乱,我会在这里尝试更好地解释。 因此,基本上,我正在尝试编写一个程序,其中用户以字母形式输入电话号码,然后将其转换为数字形式。像这样:

Enter phone number: CALLATT
22555288

2=ABC3=DEF4=GHI5=JKL6=MNO7=PRS8=TUV,{{1} }

此外,如果电话号码输入包含的字符不是字母字符,则应保留它们。意思是:

9=WXY

现在,我知道使用字符串和数组可以很容易地解决此问题,但是我不应该在本练习中使用它们。我写了这段代码:

Enter phone number: 1-800-COL-LECT
1-800-265-5328

显然没有用。我的意思是,如果用户输入单个字符,则效果很好,但如果输入由多个字符组成,则效果不佳。我真的无法解决这个问题……我知道我的代码为什么和在哪里出错,但是如果不使用数组,我真的无法找到有效的解决方案来解决问题。

有帮助吗?非常感谢:)

1 个答案:

答案 0 :(得分:0)

尝试

    int num = getchar();
    do {

        /* your if / else / if train */
        printf("%c", num);

    } while ((num = getchar()) != '\n'); // assign and compare