第5讲3*
#include <iostream>
using namespace std;
//复杂做法 也要掌握1
int main()
{
string s;
getline(cin, s);
string r;
for(int i = 0; i < s.size(); i++)
{
if (s[i] != ' ') r += s[i];
else
{
//*第一类双指针算法
r += ' ';
int j = i;
while (j < s.size() && s[j] == ' ') j++;
i = j - 1;
// A B C _ _ _ _ D E //j = 3 --- j = 7 跳出 //i要跳到7位置,因为出去还要i++一次,所以这里i = j - 1;
}
}
cout << r << endl;
return 0;
}
//复杂做法 也要掌握2
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 += ' ';
//*通过判断前一个字符是否是空格,来决定要不要加空格。
}
}
cout << r << endl;
return 0;
}
/*
//简单做法
int main()
{
string str;
while(cin >> str)
{
cout << str <<' ';
}
return 0;
}
*/