/* iMode 0:ALL, 1:Left, 2:Right*/ #include <stdio.h> #include <string.h> #include <iostream> using namespace std; char* Trim(char* szStr,const char ch, int iMode) { if (szStr == NULL) return NULL; char szTmp[1024*10] = { 0x00 }; strcpy(szTmp, szStr); int iLen = strlen(szTmp), i; char *pStart = szTmp, *pEnd = szTmp+iLen; for(i = 0;i < iLen;i++) { if (szTmp[i] == ch && pStart == szTmp+i && iMode != 2) ++pStart; if (szTmp[iLen-i-1] == ch && pEnd == szTmp+iLen-i && iMode != 1) *(--pEnd) = '/0'; } strcpy(szStr, pStart); return szStr; } int main() { char szTmp[1024] = " Xiujie "; char szTmp2[1024] = ""; char szTmp3[1024] = " "; char szTmp4[1024] = " xiujie"; char szTmp5[1024] = "xiujie "; cout << Trim(szTmp, ' ', 0) << endl; cout << strlen(szTmp) << endl; cout << Trim(szTmp2, ' ', 0) << endl; cout << strlen(szTmp2) << endl; cout << Trim(szTmp3, ' ', 0) << endl; cout << strlen(szTmp3) << endl; cout << Trim(szTmp4, ' ', 1) << endl; cout << strlen(szTmp4) << endl; cout << Trim(szTmp5, ' ', 2) << endl; cout << strlen(szTmp5) << endl; return 0; }