766去掉多余的空格
作者:
什么意思O_o
,
2024-10-26 19:29:29
,
所有人可见
,
阅读 1
cin读法
#include<iostream>
using namespace std;
int main()
{
string s;
while(cin>>s) //只要有cin就读 。因为cin可以自动过滤掉输入中的空格
cout<<s<<' ';
return 0;
}
第一类双指针算法
#include<iostream>
using namespace std;
int main()
{
string s; //输入的字符串
getline(cin,s);
string r; //输出的字符串
for(int i=0;i<s.size();i++) //遍历输入得到字符串
if(s[i]!=' ') r+=s[i]; //如果不等于空格,则直接加到r中
else
{
r=r+' '; //加上第一个空格
int j=i; //定义j现在的位置,即第二个空格处
while(j<s.size()&&s[j]==' ') j++; //从此位置处开始遍历,直到出现不是空格。注意字符串最后一个空格不会读入,因为j<s.size()。每出现一次j++,即位置往后移一位。
i=j-1; //最后i即是最后j的位置-1,因为还要i++。这时i值返回做循环
}
cout<<r<<endl;
return 0;
}
局部判断空格
#include<iostream>
using namespace std;
int main()
{
string s;
getline(cin,s);
string r;
for(int i=0;i<s.size();i++)
if(s[i]!=' ') r+=s[i];
else
{
if(!i||s[i-1]!=' ') r+=' '; //如果不是第一个字母或前一个字母不等于空格。则在r中输出空格
}
cout<<r<<endl;
return 0;
}