gpt4 book ai didi

c - 从字符串中删除多余的空格(就地)

转载 作者:太空狗 更新时间:2023-10-29 15:56:23 43 4
gpt4 key购买 nike

好的,所以我之前发布了关于尝试(没有任何预建函数)删除额外空间的信息

"this is <insert many spaces!> a test"会回来的

"this is a test"

Remove spaces from a string, but not at the beginning or end

因为这是家庭作业,我没有要求完整的解决方案,一些好心的人为我提供了以下内容

"如果需要原地做,那么创建两个指针,一个指向被读取的字符,一个指向被复制的字符。当你遇到多余的空格时,然后调整'write'指针指向下一个非空格字符。将写入字符指向的字符复制到读取位置。然后将读写指针指向被复制字符之后的字符。"

问题是我现在想把我的电脑彻底砸成碎片,因为我对它非常恼火。当时我没有意识到我无法利用 char 数组,所以使用数组索引来做到这一点,我想我可以知道如何让它工作,但现在我只是使用指针,我发现它非常困难。我真的需要一些帮助,而不是完整的解决方案。到目前为止,这就是我正在做的;

1) 创建一个名为 write 的指针,所以我没有地方可以写入

2) 创建一个名为 read 的指针,所以我不知道从哪里读取

(这两个指针现在都将指向 char 数组的第一个元素)

while (read != '\0')
if read == a space
add one to read
if read equals a space now
add one to write
while read != a space {
set write to = read
}
add one to both read and write
else
add one to read and write
write = read

最佳答案

尝试自己在一张纸上一个字符一个字符地执行此操作,然后弄清楚您在做什么,然后将其转化为代码。

如果您仍然遇到问题,请先尝试做一些更简单的事情,例如只复制字符串字符而不用担心其中的“删除重复空格”部分 - 只是为了确保您没有犯傻其他地方的错误。

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

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