最近工作中遇到了string、char *、char []之间的相互转换,今天终于抽出时间将他们之间的转换记录下来,使用的是CodeBlocks软件,编译器为GNU GCC compiler,下面看代码:

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <thread>
#include <stdlib.h>

using namespace std;

int main() {
    //string --> char *
    string str1 = "hello";
    char *p1 = const_cast<char *>(str1.c_str());

printf("p1=%s.\n", p1);

//string --> char c[]
    string str2 = "world";
    char c[10] = {0};

int len1 = str2.size();
    int i = 0;
    for (i = 0; i < len1; ++i) {
        c[i] = str2[i];
    }
    c[i] = '\0';

printf("c=%s.\n", c);

//char c[] --> string
    char c2[10] = "great";
    string str3 = c2;
    cout << "str3=" << str3 << endl;

//char * --> string
    char *p2 = "wall";
    string str4 = p2;
    cout << "str4=" << str4 << endl;

//char * -->char []
    char *p3 = "china";
    char c3[10] = {0};
    int len2 = sizeof(c3);

strncpy(c3, p3, len2);
    printf("c3=%s.\n", c3);

//char [] -->char *
    char c4[10] = "haha";
    int len3 = strlen(c4);
    char *p4 = new char[len3+1];
    strncpy(p4, c4, len3);
    printf("p4=%s.\n", p4);

delete []p4;

return 0;
}

运行结果如下:

string、char *、char []之间的相互转换相关推荐

  1. PInvoke复习之深入理解char*与wchar_t*与string以及wstring之间的相互转换

    本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下 #ifndef USE_H_ #define USE_H_ #i ...

  2. MFC中CString类字符串与长整型、浮点型、字符数组char数据之间的相互转换

    一.长整型数据与CString类字符串相互转换 1.将长整型数据转换为CString字符串类 CString str; long ld; str.Format(_T("%ld"), ...

  3. C# char[]与string之间的相互转换

    string 兑换 Char[] string ss = "abcdefg";char[] cc = ss.ToCharArray(); Char[] 转换成string stri ...

  4. MFC中的CString.Format及CString,string,char*之间的转换

    1.CString.Format的使用:https://blog.csdn.net/wangkaishou/article/details/5846152 2.CString,string,char* ...

  5. java中三种转string的方法_java中int,char,string三种类型的相互转换

    如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将 ...

  6. MFC中char*,string和CString之间的转换

    string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的: char*是从学习C语言开始就已经和我们形影不离的了,有许多API都是以char*作为参数输入的.所以熟练掌握三者之间的转换十 ...

  7. String类以及String与基本数据类型/char[]/byte[]之间的转换

    String类: 1.String 声明为final的,不可被继承 2.String实现了Serializable接口:表示字符串是支持序列化的. 实现了Comparable接口:表示String可以 ...

  8. Arduino 中String 与char *,char[]之间赋值

    只是简单实现String与char *,char[]之间的赋值: 其中: xch2 = char1;       //可以正常赋值 但是不能反过来赋值: char3 = xch1;   //会出错 同 ...

  9. char, unsigned char, int,unsigned int之间的相互转换

    char, unsigned char, int,unsigned int之间的相互转换 2018年12月01日 23:45:21 _业精于勤_ 阅读数:667 标签: 数据转换 更多 个人分类: C ...

最新文章

  1. 在线翻译系统属于计算机应用领域中,【单选题】网状物编织物和机件上的滚花部分,可以在轮廓线附件用( )线示意画出...
  2. 学习一下国际巨头互联网公司的一些运营与管理思路!
  3. C++ size_t 与 size_type区别
  4. python软件开发的一般流程-Python各个岗位的开发流程
  5. openstack前世今生
  6. java 面向对象个人理解
  7. 改变文件权限的用户身份
  8. matlab保存图片时不使用指令设置图像分辨率、尺寸等
  9. mysql spool csv报错_Oracle使用spool快速导出超大表
  10. 迅雷上传速度怎么限制的方法
  11. 盘点13个值得程序员逛的论坛
  12. 几点减几点怎么列算式_时间加减法怎么算
  13. 用C语言实现FlappyBird
  14. 药片计数器电路设计与实验
  15. word页边距调整步骤
  16. 训练营四教官打死网瘾少年案今开庭审理
  17. 【论文阅读01】2021 兵棋推演的智能决策技术与挑战 尹奇跃
  18. 鞍部在哪里_富春江,富春江在哪里_富春江在哪个省_属于哪个省_就去旅游网
  19. 【小白学Java】D20》》》Iterator迭代器 增强for循环
  20. 智能音箱 天猫精灵 X1 + Broadlink 打造智能家居摇控

热门文章

  1. Linux : shell基础(慕课网Linux达人养成计划课程笔记)
  2. [转载]C#异步委托的用法 .
  3. 用iptables实现G1手机cmwap代理上http网站[转]
  4. ocs 2007技巧:查看存档服务记录的消息内容
  5. Diango博客--19.使用 Docker部署项目到线上服务器
  6. 人生苦短,我用python——当我在玩python的时候我玩些什么 -
  7. docker二进制安装mysql_Docker搭建MySQL读写分离主从模式 分布式数据库中间件Mycat分库分表应用...
  8. C语言判断两字符串同构,c语言实现判断两颗树是否同构
  9. mysql和web文件夹_Linux使用记录---自动备份MySQL和web文件夹到windows共享路径
  10. input子系统基础之按键1——什么是input子系统?