测试代码如下:
#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
转载于:https://www.cnblogs.com/feima-lxl/archive/2010/07/29/1788183.html
相关资源:数据结构—成绩单生成器