本文詳細介紹C語言中trim的實現
描述
自己用ATL寫了個COM,不支持MFC,所以無法用CString,但支持C編碼,遇到字符串(字符數組),想去掉字符串中的空格,C下沒有TRIM函數,找又沒找到,幾行代碼自己寫吧。往後大家萬一遇到用著也方便。
說明
1.seps是需要去除的字符數組,可以有幾個字符,也可以一個。這裡是空格,最常用的。
2.參數也很簡單,第一個是結果數組指針,第二個是原字符數組指針,第三個是需要去掉的字符數組指針。返回的是結果數組指針。
#include "stdafx.h"
#include <string.h>
#include <stdio.h>
char seps[] = " ";
char* trim(char* desc,char* src,char* seps);
int main(int argc, char* argv[])
{
char szResult[1024]="";
memset(szResult,0,1024);
char strtemp[]="ab c d e f";
printf( "%s\n\nTokens:\n", strtemp );
trim(szResult,strtemp,seps);
printf( "result:%s(ok!)\n", szResult );
return 0;
}
//////////////////////////////////////////////////////
char* trim(char* desc,char* src,char* seps)
{
char* token=NULL;
/* Establish string and get the first token: */
token = strtok(src, seps);
while( token != NULL )
{
/* While there are tokens in "string" */
printf( " %s\n", token );
strcat(desc,token);
/* Get next token: */
token = strtok( NULL, seps );
}
return desc;
}