码迷,mamicode.com
首页 > 其他好文 > 详细

QString、std::string转换成char*

时间:2014-09-09 22:48:09      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   使用   ar   div   sp   

#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*

标签:style   blog   color   os   io   使用   ar   div   sp   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!