/
*copyright (c)2014,烟台大学计算机学院
*All rights reserved
*文件名称:123.cpp
*作者:孙春红
*完成日期:2014年11月30日
*版本号:v1.0
*
*问题描述:编写程序,去除句子中所有多余的空格。
*输入描述:略。
*程序输出:略。
*
/
#include <iostream>
using namespace std;
char *pallstrim(char *str);
int main()
{
char s1[50]=" I'm a vegetable bird in project.";
cout<<"句子为:"<<endl;
cout<<s1<<endl;
cout<<endl;
pallstrim (s1);
cout<<"改变后的句子是:"<<endl;
cout<<endl;
cout<<pallstrim(s1)<<endl;
return 0;
}
char *pallstrim (char *str)
{
char *p=str,*q=str;
bool space=false;
while (*q==' ')
{
q++;
}
while(*q!='\0')
{
if (*q!=' ')
{
space=true;
*p++=*q++; // 不是空格,复制
}
else if (space) //是空格,但目前是第一个(因为之前notSpace=true;的条件是遇非空格)
{
space=false; //第一个空格仍然要复制
*p++=*q++;
}
else //如遇第二个或更后的空格,正是由于遇到第一个空格并复制后,notSpace=false;的原因,会走到这儿
{
q++; //不复制
}
}
*p='\0';
return str;
}
运行结果:
知识点总结:
学会运用指针做形参编写程序进行字符串的操作。