s
?
? 我的代码:
newstr
有任何方法可以在不制作新字符串的情况下做到这一点,或者有没有办法更改指针的指针地址指向
void str_trim(char *s)
{
// your code
char newstr[200];
char *newstrp = newstr;
while (*s != '\0')
{
if (*s != ' ')
{
*newstrp = *s;
*newstrp++;
*s++;
}
else if (*s == ' ')
{
*newstrp = *s;
*newstrp++;
*s++;
while (*s == ' ')
{
s++;
}
}
else
{
*newstrp = *s;
*newstrp++;
*s++;
}
}
s = &newstr;
}
?
? 没有将the的参数类型更改为新字符串,然后呼叫者必须改变您的功能以返回新的
指针。 但是,您不能将指针返回到本地变量,这意味着您必须newstr
s
char**
char*
。 可能不是你想做的。
malloc()
free()
缓冲液即可修改char[]
in-place的内容。 如果您完全无法更改
s
的签名,这是您唯一的选择。
str_trim()
在线演示