李晓亮的博客

导航

【原创】用C实现Trim()函数

测试代码如下:

#include <stdio.h>

#include <stdlib.h>

char * Trim(char *str);
int main(int argc, char *argv[])
{
 
char str1[]="      ";
 
char str2[]="\0";
 
char str3[]="   abc   def   ghi   ";

  Trim(str1);
  printf(
"[%s]\n",str1);
  
  Trim(str2);
  printf(
"[%s]\n",str2);
 
  Trim(str3);
  printf(
"[%s]\n",str3);
 
  system(
"PAUSE");   
 
return 0;
}

/*
令字符指针变量t指向字符串的最后一个字符,
若t的值为空格且t的地址大于s的地址,则将t所处地址的值置为字符串结束,
然后令t的地址继续减小;
令字符指针变量f指向字符串第一个非空格处,将f以后的字符前移;
*/
void Trim(char *s)
{  
   
char *t = s + strlen(s) - 1;
   
char *f=s;
   
int iTemp=0;
   
   
while (isspace(*t) || isspace(*f))
    {  
       
if(t >= s && isspace(*t))
        {
          
*t = '\0';
          
--t;
        }
       
if(f <= t && isspace(*f)) f++;
    }

   
while (f <= t) 
    {
       
*(s+iTemp)=(*f);
       
++iTemp;
       
++f;
    }
   
*(s+iTemp)='\0';
}

该程序的测试环境:

WinXPSP2,Dev C++ 4.9.9.2

posted on 2010-07-29 19:48  LeeXiaoLiang  阅读(466)  评论(0编辑  收藏  举报