C/C+常用的一些字符表示问题
一段代码记录所有
#include "targetver.h" #include"iostream" #include <stdio.h> #include <tchar.h> #include < vector> #include <algorithm> #include <string.h> #include<windows.h> using namespace std; int main(int argc, char* argv[]) { //C语言中的宽字符 setlocale(LC_CTYPE, "");//不这样是要乱码的 告诉编译器使用系统默认编码 编译器默认的是英文 char x = '中';//字符截断 本来这里中在A码下存的是 d6 d0 这里只存d6 wchar_t x1 = L'中'; //宽字符占用两个字节 wchar_t x2[] = L"中国";//加一个L 是使用UniCODE编码 //printf("%c", x); //wprintf(L"%c", x1); //wprintf(L"%s", x2); char x3[] = "中国3"; wchar_t x4[] = L"中国p中"; //cout << strlen(x3); //输出5 //cout << wcslen(x4);//输出4 U码中中英文都是2字节 /************************************************************************/ /* 宽字符复制用 wcscpy(y,y1); 单字符用strcpy(x,x1); 一般宽字符操都会比单字符多个W char wchar_t //多字节字符类型 宽字符类型 printf wprintf //打印到控制台函数 strlen wcslen //获取长度 strcpy wcscpy //字符串复制 strcat wcscat //字符串拼接 strcmp wcscmp //字符串比较 strstr wcsstr //字符串查找 */ /************************************************************************/ /************************************************************************/ /* win32中的宽字符 需要包括windows.h (1) 字符类型 (2) 字符串指针 char CHAR PSTR(LPSTR) 指向多字节字符串 wchar_t WCHAR PWSTR(LPWSTR) 指向宽字符串 宏 TCHAR 宏 PTSTR(LPTSTR) 其中TCHAR的意思是根据你的字符集决定你使用什么类型的字符串,多人开发建议使用这个 */ /************************************************************************/ /************************************************************************/ /* 为字符串指针赋值: PSTR pszChar = "china"; //多字节字符 PWSTR pszWChar = L"china"; //宽字符 PTSTR pszTChar = TEXT("china"); //如果项目是ASCII的 相当于"china" UNICODE 相当于L"china" */ /************************************************************************/ MessageBoxA(0, "这里是A码", 0, 0); MessageBoxW(0, L"这里是宽字符BOX 前面加L", 0, 0); MessageBox(0, TEXT("根据项目字符集决定"), TEXT("标题"), MB_OK);//这个是通用的box 我试了试处理A码不能用 U码还是可以用的 }