当前位置:C++技术网 > 资讯 > win32通用函数总结:4 CharPrev,CharPrevExA

win32通用函数总结:4 CharPrev,CharPrevExA

更新时间:2015-12-22 18:47:55浏览次数:1+次

LPTSTR CharPrev(LPCTSTR lpszStart,LPCTSTR lpszCurrent);
参数解释:lpszStart是字符串指针的起点,lpszCurrent是字符串指针的当前位置
返回值:当lpszStart等于lpszCurrent时,返回的字符串指针等于lpszStart,如果lpszStart字符串为空,不管lpszCurrent指向哪里,都返回空字符串,如果lpszCurrent指向的范围超出lpszStart字符串的大小范围,返回空字符串。
函数作用:查找字符串指针当前指向的字符内存位置的上一个字符内存地址,返回的指针的值就是当前指针前移一个字符。
代码例子:
#include <windows.h>
#include <tchar.h>
int main()
{
TCHAR *lpszStart = _T("TEST");
TCHAR *lpszCurrent = lpszStart + 2;//向后移了两位,指向S字符
TCHAR *strResult = CharPrev(lpszStart, lpszCurrent);
MessageBox(NULL, strResult, _T(""), MB_OK);//显示EST
return 0;
}
LPSTR CharPrevExA(WORD CodePage,LPCSTR lpStart,LPCSTR lpCurrentChar,DWORD dwFlags);
参数解释:CodePage是用来检查前导字节范围,有三种类型:CP_ACP:ANSI字符集,CP_MACCP:Macintosh代码页,CP_OEMCP:OEM代码页
               lpStart是字符串指针的起点
               lpCurrentChar是字符串指针的当前位置
               dwFlags保留,必须为零(MSDN里面写明),尝试过其他数值,并没有发现异样。
返回值:跟CharPrev一样
函数作用:跟CharPrev一样,但CharPrevExA可以选择代码页类型
代码例子:
#include <windows.h>
int main()
{
LPCSTR lpszStart = "TEST";
LPCSTR lpszCurrent = lpszStart + 2;//向后移了两位,指向S字符
WORD wCount = CP_ACP;
DWORD dwCount = 0;
LPSTR strResult = CharPrevExA(wCount, lpszStart, lpszCurrent, dwCount);
MessageBoxA(NULL, strResult, "", MB_OK);//显示EST
return 0;
}
可能有些地方描叙不准确或者理解有错误的地方,希望大家能提出来,我会好好改进的。