首页 > 其他 > 详细

QString、std::string转换成char*

时间:2014-09-09 22:48:09      阅读:481      评论:0      收藏:0      [点我收藏+]
#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*

原文:http://www.cnblogs.com/thinknothing/p/3963409.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!