【原创】用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) 编辑 收藏 举报