环境: 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;
}