环境: VC2003,兼容宽字符和Unicode字符
函数说明: 在参数lpszStr指定的字符串上直接修改,去掉首尾空格。返回值LPTSTR指向同参数lpszStr。
最初版:更新时间 2007-03-01
函数说明: 在参数lpszStr指定的字符串上直接修改,去掉首尾空格。返回值LPTSTR指向同参数lpszStr。
最初版:更新时间 2007-03-01
#include <Windows.h>
#include <tchar.h>
#include <assert.h>
LPTSTR _tcstrim(const LPTSTR lpszStr)
{
assert(lpszStr != NULL);
// trim right
LPTSTR lpStrEnd;
lpStrEnd = lpszStr + _tcslen( lpszStr );
while (lpStrEnd > lpszStr) {
lpStrEnd--;
if ( (*lpStrEnd) == _T(' ') )
(*lpStrEnd) = 0;
else
break;
}
lpStrEnd = lpszStr + _tcslen( lpszStr );
// trim left
LPTSTR lpszDest = lpszStr;
LPTSTR lpszSrc = lpszStr;
while (lpszSrc < lpStrEnd && (*lpszSrc) == _T(' ')) {
lpszSrc++;
}
if (lpszDest != lpszSrc) {
while (lpszSrc <= lpStrEnd) {
(*lpszDest) = (*lpszSrc);
lpszDest++;
lpszSrc++;
}
}
return lpszStr;
}
#include <tchar.h>
#include <assert.h>
LPTSTR _tcstrim(const LPTSTR lpszStr)
{
assert(lpszStr != NULL);
// trim right
LPTSTR lpStrEnd;
lpStrEnd = lpszStr + _tcslen( lpszStr );
while (lpStrEnd > lpszStr) {
lpStrEnd--;
if ( (*lpStrEnd) == _T(' ') )
(*lpStrEnd) = 0;
else
break;
}
lpStrEnd = lpszStr + _tcslen( lpszStr );
// trim left
LPTSTR lpszDest = lpszStr;
LPTSTR lpszSrc = lpszStr;
while (lpszSrc < lpStrEnd && (*lpszSrc) == _T(' ')) {
lpszSrc++;
}
if (lpszDest != lpszSrc) {
while (lpszSrc <= lpStrEnd) {
(*lpszDest) = (*lpszSrc);
lpszDest++;
lpszSrc++;
}
}
return lpszStr;
}