/*
给定字符串(ASCII码0-255)数组,
请在不开辟额外空间的情况下删除开始和结尾处的空格,
并将中间的多个连续的空格合并成一个。
例如:" i am a little boy. ",
变成"i am a little boy",语言不限,
但不要用伪代码作答,函数输入输出请参考如下的函数原型:
*/
void FormatString(char str[],int len){
int i,j,k;
i=0;
//去除前面的
while (str[i] == ' ')
{
for(j = i;j<len-1;j++){
str[j] = str[j+1];
}
len--;
str[len] = '\0';
}
//去除中间及后面
i=0;
while(i < len-1){
if(str[i] == ' ' && i < len-1 && str[i+1] == ' '){
while(str[i] == ' ' && i < len-1 && str[i+1] == ' '){
for(j = i;j<len-1;j++){
str[j] = str[j+1];
}
len--;
str[len] = '\0';
}
}
else{
i++;
}
}
//最后一个
if(str[len-1] == ' '){
str[len-1] = '\0';
len--;
}
}
int main(){
char str[]=" i am a little boy. ";
FormatString(str,strlen(str));
printf("%s",str);
while(1);
return 0;
}
下删除开始和结尾处的空格, 并将中间的多个连续的空格合并成一个。 例如:“ i am a little boy. “, 变成“i am a little boy“
最新推荐文章于 2022-04-21 10:53:48 发布