gpt4 book ai didi

c - 从c中的字符串中删除空格

转载 作者:太空宇宙 更新时间:2023-11-03 23:39:55 25 4
gpt4 key购买 nike

我知道这是一个以前被问过很多次的问题,但我不是在寻求解决方案本身,而是想知道为什么我的解决方案不起作用。

这是我的解决方案:

void delete_blanks(char *string)
{
while (*string)
{
if (*string == ' ')
*string = '\0';

*string++;
}
puts(string);
}

程序只是为每个输入打印空白 ("")。
在使用调试器运行时,我看到 *string 最后指向 '\0'。是否可以“就地”进行?

这是在这里找到的原始解决方案:

void RemoveSpaces(char* source)
{
char* i = source;
char* j = source;
while(*j != 0)
{
*i = *j++;
if(*i != ' ')
i++;
}
*i = 0;
}

最佳答案

这是一个很好的就地实现

int main(void) {
char inStr[] = "a cat is on the moon";

int end = 0;

for (int i = 0; i < strlen(inStr); i++) {
if (inStr[i] != ' ') {
if (i != end) {
inStr[end] = inStr[i];
}
end++;
}
}

inStr[end] = '\0';

printf("%s\n", inStr);
}

关于c - 从c中的字符串中删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48642366/

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