gpt4 book ai didi

C:将许多字符插入 malloc 生成的字符串中

转载 作者:行者123 更新时间:2023-11-30 20:43:31 25 4
gpt4 key购买 nike

我在教程中读到这是创建字符串的有效方法:

char *ptr_to_str = malloc( sizeof(*ptr_to_str) * 256 );

但是如何用字符串填充这个变量呢?

*ptr_to_str = 'a';

成功将第一个字符更改为“a”。我可以像这样打印字符串:

printf("%s",ptr_to_str);

输出:

a

但是当我尝试更改下一个字符时,如下所示:

*ptr_to_str[1]= 'b';

我收到错误“间接需要指针操作数('int'无效)”。

这里出了什么问题,如何成功地将许多字符的字符串插入到 *ptr_to_str 中?

最佳答案

正如错误所示

Indirection requires pointer operand ('int' invalid).

此处 ptr_to_str[1] 是位置 pt_to_str + 1 处的值,您在其前面放置一个 * *ptr_to_str [1] = 'b'(间接)这是无效的,因为 * 需要一个指针来操作而不是 int/char值。

因此将代码修改为 ptr_to_str[1] = 'b';

Now how do I fill this variable with a string?

您可以使用fgets(ptr_to_str, size, stdin);或for循环手动初始化数组;

pt_to_string = malloc(size + 1); // declare 1 extra memory for null terminatior.
for(i = 0; i < size; i++) {
ptr_to_string[i] = 'a'; // some char
}
ptr_to_string[size] = '\0';

您还可以使用 strcpy 将另一个字符串的值复制到您的 char 数组:

strcpy (ptr_to_string, "copy string");

关于C:将许多字符插入 malloc 生成的字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44862106/

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