gpt4 book ai didi

将 C 字符串逐个字符复制到动态 char*

转载 作者:行者123 更新时间:2023-11-30 18:23:53 24 4
gpt4 key购买 nike

我有一个 const char* 字符串,我想将该字符串逐字符复制到动态 `char*。

const char *constStr = "Hello world";
char *str = (char*) malloc(strlen(constStr)+1);
while(*constStr){
*str = *constStr;
constStr++;
str++;
}
printf("%s", str);
free(str);

问题是之前的代码只是将 constStr 的每个字符复制到 str 的第一个索引。不知道为什么?

最佳答案

正如其他人所指出的,您在每次迭代中都会递增 str 指针,因此您总是最终打印字符串的末尾。

您可以迭代每个字符而不增加指针。以下代码对我有用:

const char *constStr = "Hello world";
int len = strlen(constStr);
char *str = (char *) malloc(len + 1);
int i;
for (i = 0; i <= len; ++i) {
str[i] = constStr[i];
}
printf("%s", str);
free(str);

关于将 C 字符串逐个字符复制到动态 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48555221/

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