zoukankan      html  css  js  c++  java
  • 转载:string、const char*、 char* 、char[]相互转换

    本文转自: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转为其他类型

    stringconst 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
    ", str.c_str());        //打印string类型数据 .c_str()
    
        printf_s("%s
    ", constc);             //打印const char*类型数据
    
        return 0;
    
    }

    stringchar*

    #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
    ", str.c_str());        //打印string类型数据 .c_str()
    
        printf_s("%s
    ",c);                  //打印char*类型数据
    
        return 0;
    
    }

     

    ③、string转char[]

    #include <iostream>
    
    int main()
    
    {
    
        std::string str = "HelloWorld!";      //初始化string类型,并具体赋值
    
        char arrc[20] = {0};                   //初始化char[]类型,并赋值为空
    
        for (int i = 0; i < str.length(); i++) //string类型转char[]类型
    
        {
    
            arrc[i]=str[i];
    
        }
    
        printf_s("%s
    ", str.c_str());         //打印string类型数据 .c_str()
    
        printf_s("%s
    ", arrc);                //打印char[]类型数据
    
        return 0;
    
    }
    

    2const 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
    ", constc);                //打印const char* 类型数据
    
        printf_s("%s
    ", str.c_str());           //打印string类型数据
    
        return 0;
    
    }

    ②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
    ", constc);                //打印const char* 类型数据
    
        printf_s("%s
    ", c);                     //打印char*类型数据
    
        return 0;
    
    }

    ③const char*char[]

    #include <iostream>
    
    int main()
    
    {
        const char* constc = "Hello World!";     //初始化const char* 类型,并具体赋值
    
        char arrc[20] = { 0 };                   //初始化char[]类型,并赋值为空
    
        strncpy_s(arrc,constc,20);              //const char*类型转char[]类型
    
        printf_s("%s
    ", constc);                //打印const char* 类型数据
    
        printf_s("%s
    ", arrc);                  //打印char[]类型数据
    
        return 0;
    
    }

    3char*转为其他类型

    ①char*转string

    #include <iostream>
    
    int main()
    
    {
    
        char* c = "HelloWorld!";           //初始化char* 类型,并具体赋值
    
        std::string str;                   //初始化string类型
    
        str= c;                            //char*类型转string类型
    
        printf_s("%s
    ", c);                //打印char* 类型数据
    
        printf_s("%s
    ", str.c_str());      //打印string类型数据
    
        return 0;
    
    }

    ②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
    ", c);              //打印char* 类型数据
    
        printf_s("%s
    ", constc);         //打印const char* 类型数据
    
        return 0;
    
    }

    ③char*转char[]

    #include <iostream>
    
    int main()
    
    {
        char* c = "HelloWorld!";         //初始化char* 类型,并具体赋值
    
        char arrc[20] = { 0 };           //初始化char[] 类型,并具体赋值
    
        strncpy_s(arrc,c,20);             //char*类型转char[] 类型
    
        printf_s("%s
    ", c);              //打印char* 类型数据
    
        printf_s("%s
    ", arrc);           //打印char[]类型数据
    
        return 0;
    
    }

    4、char[]转为其他类型

    #include <iostream>
    
    int main()
    
    {
    
        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*类型
    
        printf_s("%s
    ", arrc);                    //打印char[]类型数据
    
        printf_s("%s
    ", str.c_str());             //打印string类型数据
    
        printf_s("%s
    ", constc);                  //打印const char* 类型数据
    
        printf_s("%s
    ", c);                       //打印char*类型数据
    
        return 0;
    
    }
  • 相关阅读:
    第二章 成员、变量和常量
    Roman To Integer
    Integer To Roman
    Container With Most Water
    搜狗2015前端工程师笔试题
    从网易与淘宝的font-size思考前端设计稿与工作流
    移动端web app自适应布局探索与总结
    CSS 常用代码
    利用 HTML 和 CSS 实现常见的布局
    CSS 尺寸单位
  • 原文地址:https://www.cnblogs.com/chaofn/p/11545260.html
Copyright © 2011-2022 走看看