問題:去除掉字符串中多余的空格,字符串的句首和句尾沒有空格,中間的字符串單詞只能保留一個空格。
解決方案:
直接上小代碼,時間復雜度O(n)。
#include <iostream>
using namespace std;
void deblank(char string [] )
{
char *p = string;
//去掉首部空格
while(*p ==' ') {
p++;
}
//去掉中間多余空格
int j=0;
while(*p !='\0')
{
string[j++]=*p++;
while(string[j-1]==' '&&*p==' ')
{
p++;
}
}
//去掉最后一個可能的空格
if(string[j-1]==' ')
string[j-1]='\0';
else
string[j]='\0';
}
int main()
{
char s[] =" bnnn ad ssss sww df ";
deblank(s);
cout<<s;
return 0;
}
