【c++】 string、const char*、 char* 、char[]四种类型转化

转自:https://www.cnblogs.com/lyf-sunicey/p/8679183.html

主要方法(请牢记):
#-----------------------------------------------------------------#

1、 变成string,直接赋值
2、 char[]变成别的,直接赋值
3、 char变constchar容易,const char变char麻烦。要用(constchar*);
4、 string变char要通过const char中转。
5、 变成char[]。string要逐个赋值,而char* 与const char* 需要用函数strncpy_s()。
#---------------------------------------------------------------#
以下具体示例:

1.char* 转其它

char* 转string:

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

char* 转const char*

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

char* 转char[]

 char* c = "HelloWorld!";         //初始化char* 类型,并具体赋值
 char arrc[20] = { 0 };           //初始化char[] 类型,并具体赋值
 strncpy_s(arrc,c,20);             //char*类型转char[] 类型

2 string转其它

string 转const char* :

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

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

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

string 转char* :

    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*类型

string转 char[ ]

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

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

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

3 const char*转其他

const char* 转 string:

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

const char* 转 char*:

    const char* constc = "Hello World!";     //初始化const char* 类型,并具体赋值
    char* c = nullptr;                       //初始化char*类型
    c= const_cast<char*>(constc);           //const char*类型转char*类型

const char* 转 char[ ]:

    const char* constc = "Hello World!";     //初始化const char* 类型,并具体赋值
    char arrc[20] = { 0 };                   //初始化char[]类型,并赋值为空
    strncpy_s(arrc,constc,20);              //const char*类型转char[]类型

4 char[]转其他

    char arrc[20] = "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*类型

参考/转载自:
https://blog.csdn.net/mpp_king/article/details/88758019

https://www.cnblogs.com/lyf-sunicey/p/8679183.html

你可能感兴趣的:(c++,c++)