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;  

  • 相关阅读:
    链表10-开发可用链表(使用链表)
    LRU简单实现
    图片服务器搭建过程
    scp
    dubbo-admin无法访问
    linux tomcat启动后无法访问
    linux进程端口防火墙
    centos7 jdk
    com.alibaba.dubbo.rpc.RpcException: Fail to start server(url: dubbo://192.16。。
    linux与Unix切换到root用户
  • 原文地址:https://www.cnblogs.com/micro-chen/p/5937497.html
Copyright © 2011-2022 走看看