gpt4 book ai didi

c - 字符串赋值的指针。错误: expression is unassignable

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

我试图从知道其位置的字符串中删除一个字符。我知道有很多方法,但我尝试过的方法会在所附代码第 4 行的标题中产生错误。我尝试的目标是使旧字符上的指针指向字符串的下一个字符。有人可以帮助我理解这个问题吗?

char* remove_char(char str[], int pos)
{
str = str[pos] + str;
if (pos < strlen(str)-1)
&(str[pos]) = &(str[pos+1]);
else
str[strlen(str)-1] = 0;
return str;
}

最佳答案

这太复杂了。这是一个可行的解决方案:

char* remove_char(char *str, int pos)
{
memmove(str+pos, str+pos+1, strlen(str+pos+1) + 1);
return str;
}

请注意,我使用的是 memmove 而不是 memcpy。当缓冲区重叠时,这一点很重要。

在您的代码中,语句 str = str[pos] + str; 简直是无稽之谈。向字符添加指针是没有意义的。有关字符串连接的信息,请参阅以下链接:

How do I concatenate two strings in C?

How do I concatenate const/literal strings in C?

关于c - 字符串赋值的指针。错误: expression is unassignable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58058713/

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