本文转自: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*

#include <iostream>

int main()

{

    std::string str = "HelloWorld!";     //初始化string类型,并具体赋值

    const char* constc = nullptr;         //初始化const char*类型,并赋值为空

    constc= str.c_str();                 //string类型转const char*类型

    printf_s("%s\n", str.c_str());        //打印string类型数据 .c_str()

    printf_s("%s\n", constc);             //打印const char*类型数据

    return ;

}

②、string转char*

#include <iostream>

int main()

{

    std::string str = "HelloWorld!";     //初始化string类型,并具体赋值

    char* c = nullptr;                    //初始化char*类型,并赋值为空

    const char* constc = nullptr;         //初始化const char*类型,并赋值为空

    constc= str.c_str();                 //string类型转const char*类型

    c= const_cast<char*>(constc);        //const char*类型转char*类型

    printf_s("%s\n", str.c_str());        //打印string类型数据 .c_str()

    printf_s("%s\n",c);                  //打印char*类型数据

    return ;

}

③、string转char[]

#include <iostream>

int main()

{

    std::string str = "HelloWorld!";      //初始化string类型,并具体赋值

    char arrc[] = {};                   //初始化char[]类型,并赋值为空

    for (int i = ; i < str.length(); i++) //string类型转char[]类型

    {

        arrc[i]=str[i];

    }

    printf_s("%s\n", str.c_str());         //打印string类型数据 .c_str()

    printf_s("%s\n", arrc);                //打印char[]类型数据

    return ;

}

2、const char*转为其他类型

①const char*转string

#include <iostream>

int main()

{

    const char* constc = "Hello World!";     //初始化const char* 类型,并具体赋值

    std::string str;                        //初始化string类型

    str= constc;                            //const char*类型转string类型

    printf_s("%s\n", constc);                //打印const char* 类型数据

    printf_s("%s\n", str.c_str());           //打印string类型数据

    return ;

}

②const char*转char*

#include <iostream>

int main()

{

    const char* constc = "Hello World!";     //初始化const char* 类型,并具体赋值

    char* c = nullptr;                       //初始化char*类型

    c= const_cast<char*>(constc);           //const char*类型转char*类型

    printf_s("%s\n", constc);                //打印const char* 类型数据

    printf_s("%s\n", c);                     //打印char*类型数据

    return ;

}

③const char*转char[]

#include <iostream>

int main()

{
const char* constc = "Hello World!"; //初始化const char* 类型,并具体赋值 char arrc[] = { }; //初始化char[]类型,并赋值为空 strncpy_s(arrc,constc,); //const char*类型转char[]类型 printf_s("%s\n", constc); //打印const char* 类型数据 printf_s("%s\n", arrc); //打印char[]类型数据 return ; }

3、char*转为其他类型

①char*转string

#include <iostream>

int main()

{

    char* c = "HelloWorld!";           //初始化char* 类型,并具体赋值

    std::string str;                   //初始化string类型

    str= c;                            //char*类型转string类型

    printf_s("%s\n", c);                //打印char* 类型数据

    printf_s("%s\n", str.c_str());      //打印string类型数据

    return ;

}

②char*转const char*

#include <iostream>

int main()

{
char* c = "HelloWorld!"; //初始化char* 类型,并具体赋值 const char* constc = nullptr; //初始化const char* 类型,并具体赋值 constc= c; //char*类型转const char* 类型 printf_s("%s\n", c); //打印char* 类型数据 printf_s("%s\n", constc); //打印const char* 类型数据 return ; }

③char*转char[]

#include <iostream>

int main()

{
char* c = "HelloWorld!"; //初始化char* 类型,并具体赋值 char arrc[] = { }; //初始化char[] 类型,并具体赋值 strncpy_s(arrc,c,); //char*类型转char[] 类型 printf_s("%s\n", c); //打印char* 类型数据 printf_s("%s\n", arrc); //打印char[]类型数据 return ; }

4、char[]转为其他类型

#include <iostream>

int main()

{

    char arrc[] = "HelloWorld!";            //初始化char[] 类型,并具体赋值

    std::string str;                          //初始化string

    const char* constc = nullptr;              //初始化const char*

    char*c = nullptr;                          //初始化char*

    str= arrc;                                //char[]类型转string类型

    constc= arrc;                             //char[]类型转const char* 类型

    c= arrc;                                  //char[]类型转char*类型

    printf_s("%s\n", arrc);                    //打印char[]类型数据

    printf_s("%s\n", str.c_str());             //打印string类型数据

    printf_s("%s\n", constc);                  //打印const char* 类型数据

    printf_s("%s\n", c);                       //打印char*类型数据

    return ;

}

转载: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. webapi 集成swagger

    参考资料:Stack Overflow 我自己写的demo:SwaggerDemoApi 在已有的webapi项目或者创建webapi项目中,打开nuget管理器 搜索:swagger 安装截图中的插 ...

  2. python3.0安装django2.0、xadmin

    1.操作环境 Windows10.python3.8 2.安装django2.0 pip install django==2.0 x   1 pip install django==2.0 3.安装相 ...

  3. webpack本地开发起服务只能用localhost和端口号打开,不能用本地ip地址打开

    这时候记得在webpack配置文件中 devServer中加host:'0.0.0.0' 或者在启动命令中加 --host 0.0.0.0

  4. 技能篇丨FineCMS 5.0.10 多个漏洞详细分析

    今天是一篇关于技能提升的文章,文章中的CMS是FineCMS,版本是5.0.10版本的几个漏洞分析,主要内容是介绍漏洞修补前和修补后的分析过程,帮助大家快速掌握该技能. 注:篇幅较长,阅读用时约7分钟 ...

  5. SPC软控件提供商NWA的产品在各行业的应用(石油天然气行业)

    Northwest Analytical (NWA)是全球领先的“工业4.0”制造分析SPC软件控件提供商.产品(包含: NWA Quality Analyst , NWA Focus EMI 和 N ...

  6. day04 作业

    一.简述Python的五大数据类型的作用.定义方式.使用方法: 数字类型 整型 作用:描述年龄 定义方式: x = 10 y = int('10') 使用方法: + - * / % // ** 如果需 ...

  7. Linux 读写锁

    线程的读写锁函数: 1,读写锁的初始化与销毁,静态初始化的话,可以直接使用PTHREAD_RWLOCK_INITIALIZER. #include <pthread.h> int pthr ...

  8. Uniform Buffer

    Uniform Buffer 是一个很有用的缓存,可以将大量的需要传递至多个着色器的矩阵.向量数据等存储在uniform buffer中.这是一个公共的缓存,所以当多个着色器需要传递相同的数据时,可以 ...

  9. 笔记15:Django提升篇

    django提升 (1)打包应用程序:可重用性 打包 Python 程序需要工具:setuptools .打包时候建议使用django-appname 1 在你的 Django 项目目录外创建一个名为 ...

  10. jq中

    1.jquery位置信息 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...