A24175. 过滤空格
填空题
中等
知识点
题目描述
过滤空格
题目描述
过滤多余的空格。一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。
输入
一行,一个字符串(长度不超过200),句子的头和尾都没有空格。
输出
过滤之后的句子。
输入样例
Hello world.This is c language.输出样例
Hello world.This is c language.参考答案
#include<bits/stdc++.h>
using namespace std;
int main()
{
char s_in[205], s_out[205];
cin.getline(s_in, 205);
int len = strlen(s_in), bn = 0, si = 0;//bn:空格数量计数
for(int i = 0; i <= len; ++i)//遍历到'\0'位置
{
if(s_in[i] == ' ')
{
bn++;//空格数量计数加1
if(bn == 1)
s_out[si++] = s_in[i];//将s_in[i]填充到s_out中
}
else
{
s_out[si++] = s_in[i];
bn = 0;
}
}
cout << s_out;
return 0;
}答案解析
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s_in, s_out;
getline(cin, s_in);
int bn = 0;//bn:空格数量计数
for(int i = 0; i < s_in.length(); ++i)
{
if(s_in[i] == ' ')
{
bn++;//空格数量计数加1
if(bn == 1)
s_out.push_back(s_in[i]);//将s_in[i]添加到s_out末尾
}
else
{
s_out.push_back(s_in[i]);
bn = 0;
}
}
cout << s_out;
return 0;
}
上一题
下一题