/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:呼亚萍
* 完成日期:2014年 12 月 14日
* 版 本 号:v1.0
*
* 问题描述:用指针作做参数,去除句子中多余的空格
* 输入描述:相应的程序
* 程序输出:去除句子中多余空格后的句子
*/
#include <iostream>
using namespace std;
char *ptrim(char *str);
int main()
{
char s1[50]=" come on";
cout<<s1<<endl;
ptrim(s1);
cout<<"去除句子中多余的空格后为:"<<s1<<endl;//返回值为char型,可以直接显示
return 0;
}
//作为示例,本函数采用了形参为数组,在实现中,直接用下标法进行访问
//实际上,在实现中,完全可以用指针法访问
char *ptrim(char *str)
{ int i;
char *p1=str;
char *p2=str;
while(*p1==' ')
*p1++;
while(*p1!='\0')
{
if(*p1!=' ')
{
i=1;
*p2++=*p1++;
}
else if(i)
{
i=0;
*p2++=*p1++;
}
else *p1++;
}
*p2='\0';
return p2;
}
运算结果:
知识点总结:
首先先去除第一个单词前的空格,然后再去除句子中多余的空格
学习心得:
c++的世界我不懂,在编写过程中有不明白,不理解的地方。如何使用i=0,i=1?