C - 使用 getchar() 和 putchar() 将 int 与字符串交换



对于我的家庭作业,我必须与一个字符交换和int。例如,如果用户键入 1,则输出应为"一"。 这应该从 0 到 5 工作。

我的想法是实现一个看起来像这样的字符数组。

*string[] = { "zero", ....., "five"}

然后我会在这样的代码中实现它。

#include <stdio.h>
int main() 
{
int c; 
while((c=getchar())!=EOF)
{
putchar(c);
}
return 0; 
}

所以因为我只被允许使用 putchar 和 getchar,而没有堆。 这将是我的方法:我将创建一个 for 循环,该循环将打印出每个字母,直到到达 \0。

这是正确的方法吗?

你走在正确的轨道上,但这里有一些提示。

我不确定*string[]是什么,但是因为您提前知道数组的大小,所以您可以制作一个固定大小char*数组来容纳这样的字符串

char* arr[6] = {"zero", "one", ..., "five"};

请注意,数组同时具有类型 (char*( 和名称 (arr(。

接下来,您可以阅读要打印

的数字
int c = getchar();

您可以使用先前定义的数组来获取正确的字符串并循环使用它,一次打印一个字符,并带有putchar

char* str = arr[c];
for (int i = 0; str[i] != ''; i++) {
putchar(str[i]);
}
putchar('n');

正如 Groo 指出的那样,字符串文字是隐式以 null 结尾的,因此您不需要在字符串中包含。数组可以只是

char* arr[6] = {"zero", "one", ..., "five"};

一切都会起作用。

最新更新