MFC编程时字符串转换

转载,原文链接:https://blog.csdn.net/kangshuaibing/article/details/84319770

本文章总结自黑马程序员视频:

  • 英文 1个字符对应1个字节 多字节
  • 中文  1个字符对应多个字节  宽字节  Unicode   比如(1)utf-8一个字符3个字节 (2)GBK 一个字符2个字节

MFC多字节转为宽字节 

TEXT、TCHER、_T是由自适应编码转换,L("")多字节转宽字节


统计字符串长度方法

1. 统计char*多字节用strlen()

char * p = "aaaa";
int num = strlen(p);

2. 统计宽字节的字符串长度用wcslen

wchar_t * p2 = L"bbbb";
int num = wcslen(p2);

char * (C字符串数组) 、string(C++)与 CString(MFC)之间的转换 

 

1. char* -> CString直接CString()

char * p3 = "ccc";
CString str = CString(p3);

2.  CString  -> char *用GetBuffer()

CStringA tmp;
tmp = str;
char * pp = tmp.GetBuffer();

3. char*转string用c_str()

char*是string与CString之间转换的桥梁,string中c_str()返回一个指向正规C字符串的指针常量。

在c语言中没有string类型,为了与c语言兼容,必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式


char c[20];
string s="1234";
strcpy(c,s.c_str());

注:使用strcpy()函数 来操作方法c_str()返回的临时指针,不能对其进行操作

4. char*转string直接赋值即可

string s;
char *p = "hello";//直接赋值
s = p;

LPCSTR与CString相互转换


1.LРСЅТRWіnЗ2和VС++所使用的一种字符串数据类型 ,L表示lоng , Р表示指针 , С表示常量 , ЅТR表示字符串
 
2.LPCSTR转CString :
 
  LPCSTR lpStr="test":
 
  CString str(lpStr);
 
3.CString转LPCSTR:
 
  CString str("test");
 
  LPCSTR lpStr = (LPCSTR)str;

CString 和int相互转化

CString str = _T("123");

int i = _ttoi(str);

===============

int i = 123;

CString str ;

str.Format(_T("%d"), i);

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值