char转string
#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
int main(int argc, char* argv[])
{
string x;
const char *y="hello";
const char z[]="hello world";
x=y;
cout<<x<<endl;
cout<<x.length()<<endl;
x=z;
cout<<x<<endl;
cout<<x.length()<<endl;
return 0;
}
输出
hello
5
hello world
11
从结果可以看出char*和char[]可以直接转换为string
string转char
#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
int main(int argc, char* argv[])
{
string x="hello";
const char *y;
y=x.data();
cout<<y<<endl;
y=x.c_str();
cout<<y<<endl;
char z[40];
x.copy(z,5,0);
*(z+5)='\0'; //要手动加上结束符
cout<<z<<endl;
return 0;
}
输出
hello
hello
hello
从结果可以看出有两种办法可以将string转为char*类型
通过copy和结尾加斜杠0的办法可以将string转换为char[]
char* 转 char数组
#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
int main(int argc, char* argv[])
{
// 创建一个字符串数组
char arr[10] = {0};
// 创建一个指针,并指向静态区存放的一个字符串“ABC”
char* tmp = "ABC";
// 利用字符串拷贝函数进行拷贝
strcpy(arr, tmp);
// 例如内存拷贝函数进行拷贝
memcpy(arr, tmp, sizeof(arr));
printf("%s",arr);
return 0;
}
输出:
ABC