【发布时间】:2018-10-20 09:24:09
【问题描述】:
对于我的作业,我必须与一个角色进行交换和诠释。例如,如果用户输入 1,则输出应为“一”。这应该从 0 到 5 有效。
我的想法是实现一个看起来像这样的 char 数组。
*string[] = { "zero\0", ....., "five\0"}
然后我会用这样的代码来实现它。
#include <stdio.h>
int main()
{
int c;
while((c=getchar())!=EOF)
{
putchar(c);
}
return 0;
}
所以因为我只被允许使用 putchar 和 getchar 而没有堆。 这将是我的方法:我将创建一个 for 循环,该循环将打印出每个字母,直到达到 \0。
这是正确的方法吗?
【问题讨论】:
-
这种方式好像根本不用字符串。
-
1) 字符串文字已经以 null 结尾,您不应在末尾添加另一个
\0。 2) 如果i == 0,则string[i]将评估为"zero"(或者,在您的情况下为"zero\0")。 -
@IncreasinglyIdiotic:按照我的阅读方式,当用户输入
1时,OP 想要打印one。字符串文字"one"已经包含 4 个字符,最后一个是'\0'。
标签: c arrays string pointers replace