C++处理char*,char[],string三种类型间的转换

前言

      在C和C++中,有一个相当重要的部分,就是字符串的编程描述。在学C的时候,很多人习惯了char[],char*表示法,直到遇见了C++后,出现了第三者:string。这时候,很多初学者就会在这三种字符串表现形式的转换上出现错误,以下是笔者总结的一些最常用的字符串转换方法供大家参考。

代码

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string.h>
using namespace std;

int main(void)
{
    string str = "HelloWorld";
    char str4[15] = "";
    char str5[15] = "";
    char str6[15] = "";
    char* str1 = (char*)str.data(); //string => char*
    char* str2 = (char*)str.c_str();//string => char*
    string str3 = str1;             //char* => string
    strcpy(str4,str1);              //char* => char[]
    memcpy(str5,str1,strlen(str1));  //char* => char[]
    for(int i=0; i<str.length(); i++) //string => char[]
    {
        str6[i] = str[i];
    }
    string str7 = str4;             //char[] => string
    char* str8 = str4;             //char[] => char*
    cout<<str1<<endl;
    cout<<str2<<endl;
    cout<<str3<<endl;
    cout<<str4<<endl;
    cout<<str5<<endl;
    cout<<str6<<endl;
    cout<<str7<<endl;
    cout<<str8<<endl;
    return 0;
}
原文地址:https://www.cnblogs.com/csnd/p/12897037.html