经典指数          
原因
2507
浏览数
0
收藏数
 

给定字符串(ASCII码0-255)数组,请在不开辟额外空间的情况下删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。例如:"   i    am a      little boy.    ",变成"i am a little boy",语言不限,但不要用伪代码作答,函数输入输出请参考如下的函数原型: C++函数原型: void FormatString(char str[],int len){ }

     举报   纠错  
 
切换
1 个答案

void FormatString(char str[], int len)

{

if(str == NULL || len <= 0)

return;

int i = 0, j = 0;

while(str[i] == ' ')//开头的空格

i++;

while(str[i] != '\0')

{

if(str[i] == ' ' && (str[i+1] == ' ' || str[i+1] == '\0'))//中间或者结尾的空格

{

i++;

continue;

}

str[j++] = str[i++];

}

str[j] = '\0';

}

 
切换
撰写答案