C語言去除字符串首尾空格

char * strim(char *str)//去除首尾的空格
{
	char *end,*sp,*ep;
	int len;
	sp = str;
	end = str + strlen(str) - 1;
	ep = end;

	while(sp<=end && isspace(*sp))// *sp == ' '也可以
		sp++;
	while(ep>=sp && isspace(*ep))
		ep--;
	len = (ep < sp) ? 0:(ep-sp)+1;//(ep < sp)判斷是否整行都是空格
	sp[len] = '\0';
	return sp;
}

這個函數的思想是:通過兩個指針,首指針和尾指針的移動來達到消除字符串首尾空格的功能。

當首指針在結束指針前面,並且指向的是空格字符時,進行向後移動的操作。

當尾指針在首指針後面,並且指向的是空格字符時,進行向前移動的操作。

三個指針,其中端指針是固定的指向字符串尾的指針,sp與ep是用來移動的指針。

isspace()函數:

原型:extern int isspace(int c); 
  
 用法:#include <ctype.h> 
  
 功能:判斷字符c是否爲空白符
  
 說明:當c爲空白符時,返回非零值,否則返回零。

空白符指空格,水平製表,垂直製表,換頁,回車和換行符。

這裏也可以用* sp == ' '來代替

若有不足之處,還望指正!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章