c++_char、char*、const char*、string、char的相互转换

#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;


int main()
{
	
	//1 char * 转换成 const char *
	char * tmp = "candle";
	const char * p1 = tmp;
	cout << "p1 is " << *p1 << endl;

	// 2 const char * 转换成char * (利用const_cast<char> 去常转换)
	const char * tmp1 = "fire";
	char * p2 = const_cast<char*>(tmp1);
	cout << "p2 is " << *p2 << endl;

	// 3 string 转换成 const char*
	string s = "sss";
	const char * p3 = s.c_str();
	cout << "p3 is " << *p3 << endl;

	//4 char *转换成 string

	char *p4 = "444";
	string s1 = p4;
	cout<<"s1 is "<<s<<endl;

	//5 char[] 转换成string
	char ch[] = { 'a' , 'b' , 'c' , 'd' ,'\0' };
	string s2 = ch;
	//如果数组中不加‘\0’,可以通过取下标赋值的方式

	char ch2[5] = {'a' , 'c' , 'd' , 'e'};

	
	cout << "ch is " << ch << endl;
	cout << "s2 is " << s2 << endl;

	// 6 string转换成char[]
	string s3 = "iams3";
	char ch1[sizeof(s3) + 1];
	strcpy_s(ch1, s3.length() + 1, const_cast<char*>(s3.c_str()));
	cout<<"ch1 is" << ch1 << endl;

	//7 string转换成char*
	//string可以根据下标访问。所以不能将string直接赋值给char*
	string s4 = "iams4";
	char * ch3 = const_cast<char *>(s4.c_str());
	printf("ch3 is %s", ch3);



	system("pause");
    return 0;
}

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值