首页 > 代码库 > QString、std::string转换成char*

QString、std::string转换成char*

#include <iostream>#include <QtCore/QString>int main(){    QString str_Q("cupcupy北京");    int j = str_Q.length(); //11,一个汉字算两个字符    std::string str_string = str_Q.toStdString();    int i = str_string.length();//11,字符串长度不包括结尾的‘/0‘    //c_str()返回的是一个临时指针,即str_p指向的内存地址属于str_string    //一旦str_string被析构,str_p就成了一个悬浮指针    //正确使用时要使用new + strcpy    const char* str_p = str_string.c_str();    char* ch = new char( i + 1 ); //字符串结尾是‘/0‘    //strcpy认为ch指向的空间足够大,strcpy_s检查ch指向的空间是否足够    strcpy_s( ch, i + 1, str_p);    std::cout<<ch<<std::endl;    return 0;}

 

QString、std::string转换成char*