zoukankan      html  css  js  c++  java
  • c++ string类型转换为char *类型

    string 是c++标准库里面其中一个,封装了对字符串的操作
    把string转换为char* 有3中方法:
    1。data
    如:
    string str="abc";
    char *p=str.data();
    2.c_str
    如:string str="gdfd";
        char *p=str.c_str();
    3 copy
    比如
    string str="hello";
    char p[40];
    str.copy(p,5,0); //这里5,代表复制几个字符,0代表复制的位置
    *(p+5)='/0'; //要手动加上结束符
    cout < <p;



    写c++代码会经常使用标准C的东西,两者搀和起来使用中难免出现类型不匹配,需要转换,之前经常使用sprintf 将char* 类型转换为string类型

    后来遇到string类型向char *类型转换,查了一下资料,使用c_str函数,格式为:

    string s="1234";
    const char *c = s.c_str();
    需要注意的是,c_str() 返回值为const char *类型的!

    例子:

    [cpp] view plain copy print?
    string add_to = "hello!";  
    const string add_on = "baby";  
    const char *cfirst = add_to.c_str();  
    const char *csecond = add_on.c_str();  
    char *copy = new char[strlen(cfirst) + strlen(csecond) + 1];  
    strcpy(copy, cfirst);  
    strcat(copy, csecond);  
    add_to = copy;  
    cout << "copy: " << copy << endl;  
    delete [] copy;  
    cout << "add_to: " << add_to << endl;  

  • 相关阅读:
    http 事务
    URI、URL、URN
    媒体类型(MIME类型)
    资源
    WEB客户端和服务器
    如何解决新浪微博返回结果中的中文编码问题
    新浪微博 使用OAuth2.0调用API
    新浪微博 授权机制研究
    hmac库 密钥相关的哈希运算消息认证码
    ValueError: Expecting property name: line 1 column 1 (char 1)
  • 原文地址:https://www.cnblogs.com/micro-chen/p/5937497.html
Copyright © 2011-2022 走看看