使用双指针,指向第一,第二个元素,判断每一次指向下一个元素时判断当前元素与上一个元素是否都为空格
#include <iostream>
using namespace std;
int main()
{
char a[201];
fgets(a,201,stdin);
char *p = a + 1;
char *q = a;
int i = 1;
printf("%c",a[0]);
while(a[i])
{
if(a[i] != ' ')
{
printf("%c",a[i]);
p++,q++,i++;
}
else if(a[i] == ' ' && *q != ' ')
{
printf("%c",a[i]);
p++,q++,i++;
}
else if(a[i] == ' ' && *q == ' ')
{
i++,p++,q++;
}
}
}
冰语晨星 大佬做法:
#include <iostream>
using namespace std;
int main()
{
string a;
while(cin >> a)
{
cout << a << " ";
}
}
#include <iostream>
using namespace std;
int main()
{
string a;
getline(cin, a);
int flag = 0;
for(int i = 0; i < a.size(); i++)
{
if(a[i] != ' ')
{
printf("%c",a[i]);
flag = 0;
}
else if(flag == 0)
{
printf("%c",a[i]);
flag = 1;
}
else
continue;
}
}