CString、char*、string之间的转化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38126105/article/details/85042487

CString、char*、string之间的转化


在这里插入图片描述

  • 1.string -> char*

    直接调用c_str()函数即可。

	std::string str("hello");
	char dst[128]={};
	strcpy(dst,str.c_str());
  • 2 char* -> string
    因为string中的构造函数和重载了赋值运算符,所以我们可以借助其来进行转换。
	std::string str("hello");
    str = "hi";
  • 3 string -> CString
    string 无法直接转换为CString,所以需要先转换成char*。
		std::string s1("hello");
		CString cstr(s1.c_str());  //方法一
		cstr.Format("%s",s1.c_str());
  • 4 CString -> string
		CString cstr4 = "CString to string4";
		std::string str;
		str = cstr3.GetBuffer(cstr3.GetLength());
  • 5 CString -> char*
	strcpy(char,CString,sizeof(char));//借助strcpy将对应的内存直接copy过去
	char* p = cstr3.GetBuffer(cstr3.GetLength());//注意这块的内存是有CString进行分配的
  • 6 char* -> CString
  • 因为CString中的构造函数和重载了赋值运算符,所以我们可以借助其来进行转换。
	 	CString str("hello");
	 	str = "hi";

以上的转换是在非unicode(多字节)情况下的转换,而在unicode下,CString 对应的string 是wstring,对应的char需要进行_T(char).

猜你喜欢

转载自blog.csdn.net/m0_38126105/article/details/85042487