gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 04:17:22 25 4
gpt4 key购买 nike

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

我的想法是实现一个如下所示的字符数组。

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

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

#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\0", "one\0", ..., "five\0"};

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

接下来你可以读入你想要打印的数字

int c = getchar();

并且您可以使用您之前定义的数组来获取正确的字符串并遍历它并使用 putchar 一次打印一个字符

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

作为Groo指出字符串文字隐式以 null 终止,因此您不需要在字符串中包含 \0。数组可以只是

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

一切都会正常进行。

关于c - 使用 getchar() 和 putchar() 将 int 与字符串交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50267263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com