字符集分类

如果按照字符集来对字符串的数据类型进行分类,大概分为以下三种

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