当前位置:C++技术网 > 资讯 > win32通用函数总结:1 CharLower,CharLowerBuff

win32通用函数总结:1 CharLower,CharLowerBuff

更新时间:2015-12-21 20:27:50浏览次数:1+次

    在win32控制台工程中,使用字符串处理函数的时候经常遇到字符集的困扰,常常将unicode字符集改为多字节字符集,其实微软已经为我们准备好字符串处理的函数,避免了字符串类型转换的麻烦,但MSDN里面没有这些函数的代码例子,于是我就总结出这些函数的代码例子,方便自己以后调用时所需,顺便研究一下这些函数,提高自己的技术含量。

    可能有些地方描叙不准确或者理解有错误的地方,希望大家能指出来,我会好好改进的。

LPTSTR CharLower(LPTSTR lpsz);
参数解释:lpsz是以空为结尾的字符串或者单个字符。
返回值:如果lpsz是字符串,则返回指向转换后的字符串的字符指针,如果lpsz是单个字符,则返回值是一个32位值,高阶位是零,低阶位包含转换后的字符。
函数作用:将一个大写字符串或者单个字符转为小写,返回字符串指针,返回值和参数都会变为小写。
注意:参数不能用字符指针要用字符数组,这里简单说一下,因为这个函数会改写参数的内存值,如果用字符指针,
该指针是指向常量域,而常量域的值是不允许修改的,虽然编译没有出错,但运行就会报错,错误是写入位置0x****发生访问错误。

代码例子:

#include <windows.h>
#include <tchar.h>//包含了_T的定义
int main()
{
	TCHAR str[] = _T("TEST");
	//str不能用字符指针,即TCHAR *str或者LPTSTR str
	TCHAR *strResult = CharLower(str);
	MessageBox(NULL, strResult, _T(""), MB_OK);//显示test
	system("pause");
	return 0;
}
DWORD CharLowerBuff(LPTSTR lpsz,DWORD cchLength);
参数解释:lpsz是以空为结尾的字符串或者单个字符,cchLength是需要转换的字符个数。
返回值:函数成功返回cchLength的值,MSDN明确说明该函数处理cchLength对应的字符数,即使这些字符是NULL,所以说返回成功转换的字符数这句话也没有错,它的确处理了所有字符,即使这些字符是NULL。
函数作用:根据cchLength将大写的字符串对应个数转换为小写。
代码例子:
#include <windows.h>
#include <tchar.h>
int main()
{
	TCHAR str[] = _T("TEST");
	DWORD nCount = CharLowerBuff(str, 10);
        //调试查看函数运行后nCount的值,nCount=10而不是4
	MessageBox(NULL, str, _T(""), MB_OK);//显示test
	system("pause");
	return 0;
}