C++各种字符转换

C++各种字符转换

一.如何将char数组转化为string类型

在C++中,可以使用string的构造函数或者赋值操作符来将char数组转换为string类型。

方法1:使用string的构造函数

cpp 复制代码
    const char* chars = "Hello";
    std::string str(chars); // 使用构造函数进行转换
    cout<<str<< endl;

方法2:使用赋值操作符

cpp 复制代码
    const char* chars2 = "World";
    std::string str2;
    str2 = chars2; // 使用赋值操作符进行转换
    cout<<str2<< endl;

二. string转char数组:

1、调用strcpy函数,和字符串的data函数: (char数组可以更改)(string转char数组)

①、strcpy不能赋值给char指针 ,只能赋值给char数组;

②、char数组长度,必须大于等于string长度。

cpp 复制代码
#include<iostream>
#include<cstring>
using namespace std;
 
int main()
{	
	string s="123456"; 
	char c[s.length()]; 
	
	/*
	**调用strcpy函数,和字符串的data函数 
	**1、strcpy不能赋值给char指针 ,只能赋值给char数组 
	**2、char数组长度,必须大于等于string长度 
	*/ 
	strcpy(c,s.data()); 	
	
	c[0]='6';
	
	cout<<c<<endl;
	cout<<strlen(c);
	
	return 0;
}

2.调用data函数:(string转char*)

只能赋给const char指针。

const char指针,只是说它指向的东西,不能再重新赋值,但可以改变指向。

cpp 复制代码
#include<iostream>
#include<cstring>
using namespace std;
 
int main()
{	
	string str = "hello";
	const char* p = str.data();//加const或者用char *p=(char*)str.data();
	
	//*p="Go";  ======>报错:[Error] invalid conversion from 'const char*' to 'char' [-fpermissive] 
	//                       [Error] assignment of read-only location '* p' 
	
	
	cout<<p<<endl; 
	
	char a[]="Nice";
	p=a;
	
	cout<<p;
	
	return 0;
	
}

3、调用c_str函数:

cpp 复制代码
#include<iostream>
#include<cstring>
using namespace std;
 
int main()
{	
	string str = "hello";
	const char* p = str.c_str();//加const或者用char *p=(char*)str.data();
	
	cout<<p<<endl; 
	
	char a[]="Nice";
	p=a;
	
	cout<<p;
	
	return 0;
}

参考

相关推荐
飞Link10 小时前
【AI大模型实战】万字长文肝透大语言模型(LLM):从底层原理解析到企业级Python项目落地
开发语言·人工智能·python·语言模型·自然语言处理
妙蛙种子31110 小时前
【Java设计模式 | 创建者模式】 原型模式
java·开发语言·后端·设计模式·原型模式
LlNingyu10 小时前
Go 实现无锁环形队列:面向多生产者多消费者的高性能 MPMC 设计
开发语言·golang·队列·mpmc·数据通道
旖-旎10 小时前
哈希表(存在重复元素||)(4)
数据结构·c++·算法·leetcode·哈希算法·散列表
Lyyaoo.10 小时前
【JAVA基础面经】线程的状态
java·开发语言
Hello小赵10 小时前
C语言如何自定义链接库——编译与调用
android·java·c语言
John.Lewis10 小时前
C++进阶(8)智能指针
开发语言·c++·笔记
希望永不加班10 小时前
SpringBoot 配置绑定:@ConfigurationProperties
java·spring boot·后端·spring
悟空码字10 小时前
MySQL性能优化的天花板:10条你必须掌握的顶级SQL分析技巧
java·后端·mysql
indexsunny10 小时前
互联网大厂Java面试实战:Spring Boot、MyBatis与Kafka在电商场景中的应用
java·spring boot·面试·kafka·mybatis·电商·技术栈