c_str函数的返回值是const char*。 c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。 举个栗子: String st ="insert into chuang values ('"+ vos[0] +"...
如果String,是 a std::string,你可以这样做 strcpy(host, DATA.c_str()); Run Code Online (Sandbox Code Playgroud) 例如如果它是一个自定义类 class String { char buffer[20]; //add a method c_str() for example like the std::string does const char * c_str() { return buffer; } //...
当在vs中遇到不存在从QString到const char *的适合转换函数这样的错误时,有两种方式解决,如下: #include<QtCore/QCoreApplication>#include<QDebug>intmain(intargc,char*argv[]){QCoreApplicationa(argc,argv);QStringhello("Hello World");constchar*chHello=hello.toLocal8Bit().data();constchar*chHelloUf...
其实CString与string的转换方式有挺多种的,但也并不是每一种都适用,可能需要一些稍微的改动才能正常运行。 比如网上常见的一种转换方法(如果你的能直接转换也是没问题滴): 哦吼,发现转不了,就很气。提示错误为:no suitable constructor exists to convert from “const char *” to “ATL::CStringT<wchar_t, ...
【问题原因】因为项目编码方式为Unicode, CString中是WCHAR,string里是char,类型不匹配;CString实际是CStringT, 也就是模板类, 它在UNICODE环境下, 实际是CStringW, 而在多字符集下是CStringA,而std::string就是多字符集的 【解决方法】 CString cstr;
WCHAR去掉前面的W
【问题原因】因为项目编码方式为Unicode, CString中是WCHAR,string里是char,类型不匹配;CString实际是CStringT, 也就是模板类, 它在UNICODE环境下, 实际是CStringW, 而在多字符集下是CStringA,而std::string就是多字符集的 【解决方法】 CString cstr;