CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

寻求Trim函数的C实现

楼主Sachow(SC)2001-11-15 10:41:54 在 C/C++ / C语言 提问

我对C的指针用法还不是很自如,所以想征求一下大家的帮助。 问题点数:50、回复次数:5Top

1 楼Sachow(SC)回复于 2001-11-15 11:12:56 得分 0

要代码,不是原理,不用想得太复杂。Top

2 楼kingfish(工作很忙,很少来csdn...)回复于 2001-11-15 12:25:53 得分 50

/*   将字符串尾部的空格压缩掉   */  
  char   *trim(   s   )  
  char   *s;  
  {  
      register   int   l;  
   
      for(   l=strlen(s);   l>0   &&   isspace((u_char)s[l-1]);   l--)   s[l-1]='\0';  
      return(s);  
  }  
   
   
  /*   将字符串首部的空格压缩掉   */  
  char   *ltrim(   s   )  
  char   *s;  
  {  
      register   char   *p;  
   
      for(   p=s;   isspace((u_char)*p);   p++   );  
      if(   p!=s   )     strcpy(s,   p);  
      return(s);  
  }  
  Top

3 楼oldgameman(月光轮舞)回复于 2001-11-15 12:36:10 得分 0

关键在于判断空格在C中的表示方法,然后用指针将首和尾的空格去除Top

4 楼Sachow(SC)回复于 2001-11-15 13:58:39 得分 0

谢谢kingfish(今飞)!Top

5 楼Sachow(SC)回复于 2001-11-15 18:31:28 得分 0

加上一个(我在同事的帮助下做的),删除两边的空格:  
   
  char   *trim(const   char   *s)  
  {  
      int   l;  
      char   *tmp;  
      if   (s==NULL)   return   "";  
      while   (*s<='   ')   s++;         /*   指针右移,直到没有空格的字符   */  
      tmp   =   (char   *)malloc(strlen(s));  
      strcpy(tmp,s);           /*   去除字符串左边的空格   */  
      l   =   strlen(tmp);  
      while   (tmp[l-1]<='   '){  
          l--;  
          tmp[l]=0;                     /*   将字符串右边的空格填充为结束符   */  
      }  
      return   tmp;  
  }  
  Top

相关问题

  • 寻求函数
  • c++函数
  • C函数
  • 标准C++或C中,有无实现trim功能的函数?
  • C++函数手册!
  • 求C#的函数?
  • 再求函数(C#)?
  • C++入口函数
  • 求一C#函数
  • 再求trim函数的C语言实现

关键词

  • 空格
  • trim
  • char

得分解答快速导航

  • 帖主:Sachow
  • kingfish

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo