C++處理char*,char[],string三種類型間的轉換
阿新 • • 發佈:2019-01-02
前言
在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] = "\0";
char str5[15] = "\0";
char str6[15] = "\0";
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;
}