C++基本数据类型中表示字符的有两种: char、wchar_t。
char叫多字节字符,一个char占1个字节,之所以叫多字节字符是因为它表示一个英文字符时是一个字节,而中文字符时是多个字节。
wchar_t被称为宽字符,一个wchar_t占2个字节。之所以叫宽字符是因为所有的字都要赋值时,前面要加L,如:wchar_t str[3]=L”中国”;。
注意:两种字符对应的字符串函数也不一样,strlen()对应wcslen(),strcpy()对应wcscpy)一般把char类型函数中的" str"替换为" wcs"即可。
#include<iostream> #include <stdio.h> #include <Locale.h> //解决中文乱码问题头文件 #include <string.h> using namespace std; int main(){ char *str1 = "A中"; printf("%s %d\n", str1, strlen(str1)); _wsetlocale(LC_ALL, L"chs");//把输出设置为中文. wchar_t *str2 = L"A中";//必须加L 表示字符串是unicode wprintf(L"%s %d\n", str2, wcslen(str2));//计算字符个数,遇到\0结束 int a; cin >> a; return 0; } /* 输出结果一个为2,一个为3 */
windows中API函数后面带A与W的区别
Win32API中带字符串的API一般都有两个版本,例如CreateFileA和CreateFileW。
当然也有例外,例如GetProcAddress函数。A代表ANSI编码,W代表Unicode字符集。
Windows中的Unicode字符一般指UCS2的UTF16-LE编码。
看如下预编译指令:
#ifdef UNICODE #define MessageBox MessageBoxW #else #define MessageBox MessageBoxA #endif // !UNICODE
相关推荐
c++ WIndoWs应用程序 入口函数WInMAIn详解入口函数WinMain详解类似于C程序的main函数,Win32应用程序也有一个入口函数WinMain,该函数被系统自动调用函数原型:int WINAPI WinMain( HINSTANCE hI
c++字符串(strIng 与 chAr)操作函数大全字符串拼接查找与替换:字符串比较字符串存取字符串插入和删除string子串(子文本)功能描述:·查找:查找指定字符串是否存在·替换:在指定的位置替换字符串函数原型://查找str第一次出现位置,从pO
WIndoWs ApI数据类型的命名规律 与常用的WIndoWs 数据类型WindowsAPI数据类型的命名规律基本数据来袭包括:BYTE 字节CHAR 字符WORD 单字SHORT 短整型INT 整型指针的类型命名方式一般都在对象名前面加 LP 或者 P /*字
WIndoWs ApI获取当前进程内存使用情况 内存占有率 pprocEss_MEMorY_coUntErs易语言 可以直接使用精易模块 进程_内存使用 (, )API:BOOL GetProcessMemoryInfo( HANDLE Process, PPROCESS_MEMO
输入法管理器(IMM)函数大全(WIndoWs cE 5.0)imm好像要被弃用了 还是研究 TSF输入法 吧 ,虽然没啥鸟用了 但是还是搬运一下下吧EnumRegisterWordProc此函数是与一起使用的应用程序定义的回调函数ImmEnumRegister
WIndoWsApI 高频窗口控件函数: 操作控件 创建 取句柄 取标题 取文本 置标题 置文本Win32API提供了一系列的函数来操作控件高频常用控件函数:类型说明GetDlgItem根据控件ID,取控件句柄GetDlgItemText根据控件ID,取控件文本GetDlgItemInt根据控件
mysql效率研究(二):chAr(20) 和 chAr(40) vArchAr(255)和vArchAr(256) 和 vArchAr(50)和vArchAr(100) 的区别/*varchar(255)和varchar(256) 和 varchar(50)和varchar(100) 的区别*/ $sql="create table char20(
c++ 取字符个数 取chAr*的字符数 (汉字和字母都算一个)的代码如下:#include <stdio.h> #include <string> int 取文本长度_字符数(char *s){//代码摘自 精易模块 文本_逐字分割(
c++中 引用&Amp;符和 * 的区别简单的一句话概括:*是取数据 , &是取地址也可以理解为 &是引用 *是解引用例子1:解引用a=10;p=&a 把a的地址取出来,赋值给p,p等于一个地址* p=1000
c++类的定义 和 struct与clAss的区别 和初始值的设置类的创建#include<iostream> using namespace std; #include <string> class 学生类{ public: