gpt4 book ai didi

c - 如何将实际字符存储到数组中?

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

所以我想知道如何将实际字符存储到数组中。

    char arr[4] = "sup!";
char backwards[4];
backwards[0] = *(arr + 3);

我想我的第二个问题是,如果我这样做,如果我使用 %c 提示 backward[0] 的 printf,实际字符会出现吗?

最佳答案

首先,让我们解决数组大小问题:

C 中的字符数组是 null-terminated:这意味着您需要为尾随的 \0 添加空格以终止您的字符串。您可以在第一行使用 char arr[5]。 (请注意,如果您绝对确定,那么您将永远将此字符数组与任何 C 字符串处理函数一起使用,并且您将您的字符单独分配为字符而不是字符串,这在技术上不是必需的。但可以节省一些调试时间并用完额外的字节。)这可能是您的“奇怪错误”的来源。

好像你知道,但要记住的另一件事是在 C 中,数组是 zero-based .这意味着当你像 char arr[4] 那样声明和排列时,你真的得到了

arr[0]
arr[1]
arr[2]
arr[3]

C 毫不犹豫地让您离开数组的末尾并踩踏数据或读入错误的值。这里是龙。小心。

现在,开始您的实际问题:

1) 您使用单引号分配实际字符 arr[2]='x'; 如果您使用双引号,您将分配一个 C 字符串,如前所述,该字符串以 null 结尾。

2) 是的,printf%c 应该可以解决问题。

关于c - 如何将实际字符存储到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19886264/

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