字符集分类
如果按照字符集来对字符串的数据类型进行分类,大概分为以下三种
Ansi:
char、char*、const char*
CHAR、PCHAR、PSTR、LPSTR、LPCSTR
Unicode:(宽字节)
wchar_t、wchar_t*、const wchar_t*
WCHAR、PWCHAR、PWSTR、LPCWSTR
T通用性
TCHAR、TCHAR*、PTCHAR、PTSTR、LPTSTR、LPCTSTR
解释:
L表示long指针(旧的机器有区别,新机器有没有L都一样了),
P表示这是一个指针
C表示是一个常量
STR表示这个变量是一个字符串
W表示宽字节
T表示通用类型,_T宏会根据编译器的字符集自动选择定义类型
字符串类型的对象的定义
Ansi:
char *pstr="hello";
Unicode:
wchar_t *pStr=L"hello";
通用类型:
TCHAR * pTStr=_T("hello"); //或 TCHAR * pTStr=_TEXT("hello");
动态申请内存:
TCHAR *p = new TCHAR[100];
取字符串长度:
取文本长度函数区别:不同类型的字符集,取字符串长度所用的函数也不同,如果强转数据类型 即使编译通过,结果也是不对的
以下函数不需要都记住 只需要知道一种 需要的时候可以通过MSDN查询其中一个 一般都会有其他字符集的相应函数
Ans求字符串长度: strlen(char *str)
Unicode求字符串长度: wcslen(wchar_t *str);
通用函数求字符串长度: _tcslen(TCHAR *str) ;
Ansi 字符串到数值: int atoi(const char *str);
Unicode:字符串到数值: int_wtoi(const wchar_t *str)
通用函数:字符串到数值: _tstoi(const TCHAR *str);
Ansi 字符串拷贝: strcpy(char * strDestination,const char *strSource);
Unicode 字符串拷贝: wcscpy(wchar_t * strDestination,const wchar_t *strSource)
通用函数 字符串拷贝: _tcscpy(TCHAR *strDestination,const, size_t numberOfElements,const TCHAT *strSource )
Ansi占用字节数:
char str[]="abc";
sizeof(str);
char *psz="aaaaa";
strlen(psz)*sizeof(char);
Unicode占用字节数:
wchar_t szwStr[]=L"aaa";
sizeof(szwstr);
wchtr_t *pwsz =L"aaaa"
wcslen(pwsz)*sizeof(wchtr_t);
通用函数占用字节数:
TCHAR szstr[]=_T("aaa");
sizeof(szstr)
TCHAR *psz=T("aaa");
_tcslen(psz)*sizeof(TCHAR);
转换用到的最基本的API函数
WideCharToMultiByte 实现宽字节转换到窄字节
MultiByteToWideChar 实现窄字节转换到宽字节
相关推荐
LPSTR、LPWSTR、LPTSTR、LPcTSTR WindowAPI中的字符串数据类型LP前缀 表示指针STR 表示字符串LPWSTR W代表Unicode版本LPTSTR T代表根据项目而定LPCTSTR C表示const T表示根据项目决定LPSTR 多字节变量类型使用自
Windows API数据类型的命名规律 与常用的Windows 数据类型WindowsAPI数据类型的命名规律基本数据来袭包括:BYTE 字节CHAR 字符WORD 单字SHORT 短整型INT 整型指针的类型命名方式一般都在对象名前面加 LP 或者 P /*字
c++常用数据类型数据类型占用空间取值范围short(短整型)2字节-32768 ~ 32767int(整型)4字节-2147483648 ~ 2147483647long(长整形)4字节 (linux32位为4字节,
c++字符串(string 与 char)操作函数大全字符串拼接查找与替换:字符串比较字符串存取字符串插入和删除string子串(子文本)功能描述:·查找:查找指定字符串是否存在·替换:在指定的位置替换字符串函数原型://查找str第一次出现位置,从pO
c++ 字符串函数 cString 封装易语言: 文本_取出中间文本CString 文本_取出中间文本(CString &原文本, CString 左边文本, CString 右边文本){ CString 返回文本; int 开始位置 = 原文本.
mysql数据类型mysql创建表语句格式:create table tablename(列1 int unsigned,//unsigned意思是无符号。不为负。列2 列类型 列属性 默认值,列3 列类型
c51数据类型类型符号关键字所占位数数字范围整数型有int16-32768-32767整数型有short16-32768-32767整数型有long32-2147483648-2147483647整数型无unsig
c# 的数据类型 和取值范围值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类
mysql中tinynt,smallint ,int,bigint的数据类型取值范围最大能取多少?数据类型占用空间取值范围(有符号)取值范围(无符号)小整数型tinynt1字节-128~1270~255大整数型smallint2字节-32768~327670~65535大整数型MEDIUMINT3
c#取MD5 c#取字符串MD5值public string GetMD5(string sDataIn) { MD5CryptoServiceProvider md5 = new MD5CryptoS