【发布时间】:2019-03-12 20:32:14
【问题描述】:
我是 C 新手,已经开始学习字符串。我想创建一个名为
的函数void SpaceRemover(char *input )
它应该从给定的具有大量空间的字符串数组中删除间隔
到目前为止,我生成的代码删除了所有空格,并且没有提供我正在寻找的输出。谁能帮我这个?
char* SpaceRemover(char *input){
char *output=input;
for (int i = 0, j = 0; i<strlen(input); i++,j++)
{
if (input[i]!=' ')
output[j]=input[i];
else
j--;
}
return output;
}
我做了这个,但我知道它错了,没有做我想做的事,但老实说,这就是我所能做的-_-
【问题讨论】:
-
如果您向我们展示了您的代码以及您使用它得到的结果,我们可能会看一下并尝试找出它有什么问题。
-
发布你的代码!一种解决方案可能是一个标志来指示您是否刚刚添加了一个空格(这样您就不会添加两个连续的空格)。但是如果没有您的代码,很难说出这样的标志方法将如何适应。
-
这甚至不应该编译,你的函数被声明为不返回任何东西,但你试图返回一个
char* -
您的原型的返回类型与您的实现不同。请修改。
-
当您想要修剪前导空格、压缩包含空格并删除尾随空格时,乐趣就开始了。 (例如
" david smith ")
标签: c arrays string function if-statement