Chinaunix首页 | 论坛 | 博客
  • 博客访问: 580734
  • 博文数量: 192
  • 博客积分: 3780
  • 博客等级: 中校
  • 技术积分: 1487
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-26 10:11
文章存档

2012年(6)

2011年(160)

2010年(26)

分类: C/C++

2011-10-18 17:09:49

#include<iostream> using namespace std; /**只删除字符串最前和最后的空格,如:" 1 2 " ——> "1 2" **/ char *delete_space(char src[]) { char *ret = src; char *p1 = src; char *p2; if (NULL == src) return NULL; while (*p1 == ' ' || *p1 == '\t')//跳过最前面空白字符(这里增加了2楼提到的'\t'字符) p1++; p2 = p1; while (*p2) p2++; while (--p2 >= src && (*p2== ' ' || *p2 == '\t'))//跳过最后面空白字符 ; while (p1 <= p2) *src++ = *p1++;//拷贝中间部分 *src = 0; return ret; } int main() { char src[] = " dhasd uf sduf sfhsu fsh "; cout<<delete_space(src)<<endl; system("pause"); return 0; }



#include <iostream> #include <cstring> using namespace std; char* eraseSpace(char *str) { /************************************************************************/ /* 思想:指针i,j,从字符串两头向中间扫描,分别停止于一个非空格字符,然后开始移动字符串*/ /************************************************************************/ int i=-1,j=strlen(str),cur=0; while(str[++i]==' ') { } while(str[--j]==' ') { } for(;i<=j;++i,++cur) { str[cur]=str[i]; } str[cur]='\0'; return str; } int main() { char str[20]=" A Bd "; cout<<eraseSpace(str)<<"结束测试"<<endl; return 0; }


阅读(1034) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~