本文转自:https://blog.csdn.net/rongrongyaofeiqi/article/details/52442169

一:转化总结形式如下:

使用时,要对源格式和目标格式进行初始化。源格式赋值为具体的内容,目标格式赋值为空。

二、总结方法:

1、        变成string,直接赋值。

2、        char[]变成别的,直接赋值。

3、        char*变constchar*容易,const char*变char*麻烦。<const_cast><char*>(constchar*);

4、        string变char*要通过const char*中转。

5、        变成char[]。string逐个赋值,char* const char* strncpy_s()。

三、代码实现

1、string转为其他类型

①、string转const char*

  1. #include <iostream>
  2.  
  3. int main()
  4.  
  5. {
  6.  
  7. std::string str = "HelloWorld!"; //初始化string类型,并具体赋值
  8.  
  9. const char* constc = nullptr; //初始化const char*类型,并赋值为空
  10.  
  11. constc= str.c_str(); //string类型转const char*类型
  12.  
  13. printf_s("%s\n", str.c_str()); //打印string类型数据 .c_str()
  14.  
  15. printf_s("%s\n", constc); //打印const char*类型数据
  16.  
  17. return ;
  18.  
  19. }

②、string转char*

  1. #include <iostream>
  2.  
  3. int main()
  4.  
  5. {
  6.  
  7. std::string str = "HelloWorld!"; //初始化string类型,并具体赋值
  8.  
  9. char* c = nullptr; //初始化char*类型,并赋值为空
  10.  
  11. const char* constc = nullptr; //初始化const char*类型,并赋值为空
  12.  
  13. constc= str.c_str(); //string类型转const char*类型
  14.  
  15. c= const_cast<char*>(constc); //const char*类型转char*类型
  16.  
  17. printf_s("%s\n", str.c_str()); //打印string类型数据 .c_str()
  18.  
  19. printf_s("%s\n",c); //打印char*类型数据
  20.  
  21. return ;
  22.  
  23. }

③、string转char[]

  1. #include <iostream>
  2.  
  3. int main()
  4.  
  5. {
  6.  
  7. std::string str = "HelloWorld!"; //初始化string类型,并具体赋值
  8.  
  9. char arrc[] = {}; //初始化char[]类型,并赋值为空
  10.  
  11. for (int i = ; i < str.length(); i++) //string类型转char[]类型
  12.  
  13. {
  14.  
  15. arrc[i]=str[i];
  16.  
  17. }
  18.  
  19. printf_s("%s\n", str.c_str()); //打印string类型数据 .c_str()
  20.  
  21. printf_s("%s\n", arrc); //打印char[]类型数据
  22.  
  23. return ;
  24.  
  25. }

2、const char*转为其他类型

①const char*转string

  1. #include <iostream>
  2.  
  3. int main()
  4.  
  5. {
  6.  
  7. const char* constc = "Hello World!"; //初始化const char* 类型,并具体赋值
  8.  
  9. std::string str; //初始化string类型
  10.  
  11. str= constc; //const char*类型转string类型
  12.  
  13. printf_s("%s\n", constc); //打印const char* 类型数据
  14.  
  15. printf_s("%s\n", str.c_str()); //打印string类型数据
  16.  
  17. return ;
  18.  
  19. }

②const char*转char*

  1. #include <iostream>
  2.  
  3. int main()
  4.  
  5. {
  6.  
  7. const char* constc = "Hello World!"; //初始化const char* 类型,并具体赋值
  8.  
  9. char* c = nullptr; //初始化char*类型
  10.  
  11. c= const_cast<char*>(constc); //const char*类型转char*类型
  12.  
  13. printf_s("%s\n", constc); //打印const char* 类型数据
  14.  
  15. printf_s("%s\n", c); //打印char*类型数据
  16.  
  17. return ;
  18.  
  19. }

③const char*转char[]

  1. #include <iostream>
  2.  
  3. int main()
  4.  
  5. {
  6. const char* constc = "Hello World!"; //初始化const char* 类型,并具体赋值
  7.  
  8. char arrc[] = { }; //初始化char[]类型,并赋值为空
  9.  
  10. strncpy_s(arrc,constc,); //const char*类型转char[]类型
  11.  
  12. printf_s("%s\n", constc); //打印const char* 类型数据
  13.  
  14. printf_s("%s\n", arrc); //打印char[]类型数据
  15.  
  16. return ;
  17.  
  18. }

3、char*转为其他类型

①char*转string

  1. #include <iostream>
  2.  
  3. int main()
  4.  
  5. {
  6.  
  7. char* c = "HelloWorld!"; //初始化char* 类型,并具体赋值
  8.  
  9. std::string str; //初始化string类型
  10.  
  11. str= c; //char*类型转string类型
  12.  
  13. printf_s("%s\n", c); //打印char* 类型数据
  14.  
  15. printf_s("%s\n", str.c_str()); //打印string类型数据
  16.  
  17. return ;
  18.  
  19. }

②char*转const char*

  1. #include <iostream>
  2.  
  3. int main()
  4.  
  5. {
  6. char* c = "HelloWorld!"; //初始化char* 类型,并具体赋值
  7.  
  8. const char* constc = nullptr; //初始化const char* 类型,并具体赋值
  9.  
  10. constc= c; //char*类型转const char* 类型
  11.  
  12. printf_s("%s\n", c); //打印char* 类型数据
  13.  
  14. printf_s("%s\n", constc); //打印const char* 类型数据
  15.  
  16. return ;
  17.  
  18. }

③char*转char[]

  1. #include <iostream>
  2.  
  3. int main()
  4.  
  5. {
  6. char* c = "HelloWorld!"; //初始化char* 类型,并具体赋值
  7.  
  8. char arrc[] = { }; //初始化char[] 类型,并具体赋值
  9.  
  10. strncpy_s(arrc,c,); //char*类型转char[] 类型
  11.  
  12. printf_s("%s\n", c); //打印char* 类型数据
  13.  
  14. printf_s("%s\n", arrc); //打印char[]类型数据
  15.  
  16. return ;
  17.  
  18. }

4、char[]转为其他类型

  1. #include <iostream>
  2.  
  3. int main()
  4.  
  5. {
  6.  
  7. char arrc[] = "HelloWorld!"; //初始化char[] 类型,并具体赋值
  8.  
  9. std::string str; //初始化string
  10.  
  11. const char* constc = nullptr; //初始化const char*
  12.  
  13. char*c = nullptr; //初始化char*
  14.  
  15. str= arrc; //char[]类型转string类型
  16.  
  17. constc= arrc; //char[]类型转const char* 类型
  18.  
  19. c= arrc; //char[]类型转char*类型
  20.  
  21. printf_s("%s\n", arrc); //打印char[]类型数据
  22.  
  23. printf_s("%s\n", str.c_str()); //打印string类型数据
  24.  
  25. printf_s("%s\n", constc); //打印const char* 类型数据
  26.  
  27. printf_s("%s\n", c); //打印char*类型数据
  28.  
  29. return ;
  30.  
  31. }

转载:string、const char*、 char* 、char[]相互转换的更多相关文章

  1. string、const char*、 char* 、char[]相互转换(待整理)

    string.const char*. char* .char[]相互转换(全) https://blog.csdn.net/rongrongyaofeiqi/article/details/5244 ...

  2. [转载] C++ string, const char*, char* 之间互相转换

    1, string转const char* 类型 string str = "abcdef"; const char* con_str = string.c_str() 2, co ...

  3. string、const char*、 char* 、char[]相互转换

    转化总结如下: 目标格式 源格式 string const char* char* char[] string NULL const char*=string.c_str(); const char* ...

  4. C++ 字符串、string、char *、char[]、const char*的转换和区别

    1.字符串 字符串本质就是一串字符,在C++中大家想到字符串往往第一反应是std::string(后面简称string) 字符串得从C语言说起,string其实是个类,C语言是没有class的,所以C ...

  5. 【C++】int、const char*、char*、char、string之间的转换

    #include "stdafx.h" #include<string> #include<vector> #include<iostream> ...

  6. string,const char*,char*之间的相互转换

    1. string转const char* string s = "abc"; const char* c_s = s.c_str(); 2. const char*转string ...

  7. const char*、char*、char* const、char[]、string的区别

    1.const char* p: p is a pointer to const char(char const* p 一样)   意思就是不能通过p指针来修改p指向的内容(但是内容可以修改). 2. ...

  8. How to convert a std::string to const char* or char*?

    How to convert a std::string to const char* or char*? 1. If you just want to pass a std::string to a ...

  9. string,const char*, char*转换之后还是指向同一片内存地址么?

    class Same { public: void reverse(const char* str) { char* A = const_cast<char*>(str); A[] = ' ...

随机推荐

  1. CentOS 6.9安装MySQL 5.6 (使用yum安装)

    CentOS 6.9安装MySQL 5.6 (使用yum安装) 移除CentOS默认的mysql-libs [root@test01 srv]# whereis mysqlmysql: /usr/li ...

  2. pytest-fixture参数化

    fixture参数化 指定params属性,实现fixture的参数化,引用该fixture的测试方法将遍历全部参数 import pytest @pytest.fixture(params=[&qu ...

  3. Docker install in Linux

    install command sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-man ...

  4. 在vue项目中通过iframe引入jquery项目

    最近公司因为原来的jq框架存在的问题太多,所以要进行主题框架的重新搭建,我使用的vue进行的主题框架的重新搭建,但是原来的页面已经完成很多了,而且都是使用的jquery进行开发的 在vue中引入jqu ...

  5. vue-v-for

    1.v-for遍历数组和对象 <ul> <li v-for="item in array">{{item}}</li><br> &l ...

  6. Phoenix 无法启动报错: java.net.BindException: Address already in use

    一.问题描述 i. 登录Ambari发现有一个节点的 Phoenix 无法启动 ii. 在Ambari上点击“Start”,监控 Phoenix 日志文件 iii. Phoenix 日志如下: [ro ...

  7. postgreSQL 自动递增序号

    创建表格 CREATE TABLE test ( id serial, name ) not null ); 查询当前创建好的表格 插入数据 BEGIN TRANSACTION; INSERT INT ...

  8. OpenStack Train版 简单部署流程

    environment 1.网络平面 management(管理网络)→软件安装,组件通信 provider(提供实例网络)→:提供者网络:直接获取ip地址,实例之间直接互通   自服务网络(私有网络 ...

  9. jmeter压测学习8-压测带token的接口

    前言 工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口. 比如我现在要压测一个修改用户的个人信息接口,每个用 ...

  10. 201871010124-王生涛《面向对象程序设计(java)》第十四周学习总结

    项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>http ...