问题及代码:
#include <iostream>
using namespace std;
char *ptrim(char*str);
int main()
{
char s1[50]=" Hello world. ";
cout<<"删除空格后"<<ptrim(s1)<<endl;
return 0;
}
char *ptrim(char*str)
{
char *p,*q;
for (p=str; *(p+1)!='\0'; p++)
{
*p=*(p+1);
}
*p='\0';
return str;
}
运行结果:
个人心得:
并没有很好解决如果有多个空格的情况,先mark本文,最后再思考。
——————————————————————————————————————————
修改后如下,可删除多个空格了
#include <iostream>
using namespace std;
char *ptrim(char *str);
int main(void)
{
char s1[50]=" Hello world. ";
cout<<"原句:"<<s1<<endl;
cout<<"删除空格后:"<<ptrim(s1)<<endl;
return 0;
}
char *ptrim(char *str)
{
char *p=str,*q;
for(q=str;*q==' ';q++);
while(*q!='\0')
*p++=*q++;
*p='\0';
return str;
}