是否有一个干净的,最好是标准的方法来修剪C中字符串的前导和尾随空格?我会自己动手,但我认为这是一个同样常见的解决方案的常见问题.
可能的重复:
在C中修剪前导/尾随空格的无痛方法?
修剪C中的字符串
嗨伙计们,我在c中编写String trim方法,这是我提出的代码.我认为它可以消除前导和尾随空格,但我希望代码可以更清晰.你能建议改进吗?
void trim(char *String)
{
int i=0;j=0;
char c,lastc;
while(String[i])
{
c=String[i];
if(c!=' ')
{
String[j]=c;
j++;
}
else if(lastc!= ' ')
{
String[j]=c;
j++;
}
lastc = c;
i++;
}
Run Code Online (Sandbox Code Playgroud)
这段代码看起来干净吗?
可能重复:
如何以标准方式修剪前导/尾随空格?
我需要从字符串的开头和结尾删除所有空格,例如,如果我的字符串是
" hello world. "
Run Code Online (Sandbox Code Playgroud)
(没有引号),我需要打印
"hello world."
Run Code Online (Sandbox Code Playgroud)
我试过这样的事情:
size_t length = strlen (str);
for (newstr = str; *newstr; newstr++, length--) {
while (isspace (*newstr))
memmove (newstr, newstr + 1, length--);
Run Code Online (Sandbox Code Playgroud)
但它会删除所有空格.
我该如何解决?