C++各种字符转换

news2024/10/5 15:35:56

C++各种字符转换

  • 一.如何将char数组转化为string类型
  • 二. string转char数组:
  • 参考

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

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

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

方法2:使用赋值操作符

    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长度。

#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指针,只是说它指向的东西,不能再重新赋值,但可以改变指向。

#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函数:

#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;
}

参考

  • c++ char转string类型
  • string与char数组相互转换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1222837.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【docker】Docker网络与iptables

Docker能为我们提供很强大和灵活的网络能力&#xff0c;很大程度上要归功于与iptables的结合。在使用时&#xff0c;你可能没有太关注到 iptables在其中产生的作用&#xff0c;这是因为Docker已经帮我们自动的完成了相关的配置。 iptables在Docker中的应用主要是用于网络流量控…

4.5 Windows驱动开发:实现进程数据转储

多数ARK反内核工具中都存在驱动级别的内存转存功能&#xff0c;该功能可以将应用层中运行进程的内存镜像转存到特定目录下&#xff0c;内存转存功能在应对加壳程序的分析尤为重要&#xff0c;当进程在内存中解码后&#xff0c;我们可以很容易的将内存镜像导出&#xff0c;从而更…

解决k8s node节点报错: Failed to watch *v1.Secret: unknown

现象&#xff1a; 这个现象是发生在k8s集群证书过期&#xff0c;重新续签证书以后。 记得master节点的/etc/kubernetes/kubelet.conf文件已经复制到node节点了。 但是为什么还是报这个错&#xff0c;然后运行证书检查命令看一下&#xff1a; 看样子是差/etc/kubernetes/pki/…

一种基于NB‑IOT的粮库挡粮门异动监测装置

一种基于NB‑IOT的粮库挡粮门异动监测装置,包括若干个NB‑IOT开门监测装置、物联网后台管理系统、NB‑IOT低功耗广域网络和用户访问终端;各个NB‑IOT开门监测装置通过NB‑IOT低功耗广域网络与物联网后台管理系统连接,物联网后台管理系统与用户访问终端连接。 我国以往粮食收储…

Maven依赖传递和依赖冲突以及继承和聚合关系详解

Java全能学习面试指南&#xff1a;https://javaxiaobear.cn 1、Maven依赖传递和依赖冲突 1. Maven依赖传递特性 概念 假如有Maven项目A&#xff0c;项目B依赖A&#xff0c;项目C依赖B。那么我们可以说 C依赖A。也就是说&#xff0c;依赖的关系为&#xff1a;C—>B—>…

Java 算法篇-链表的经典算法:有序链表去重、合并多个有序链表

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 链表的说明 2.0 有序链表去重的实现方式 2.1 有序链表去重(保留重复的节点) - 使用递归来实现 2.2 有序链表去重(保留重复的节点) - 使用双指针来实现 2.3 有序…

常见面试题-MySQL的Explain执行计划

了解 Explain 执行计划吗&#xff1f; 答&#xff1a; explain 语句可以帮助我们查看查询语句的具体执行计划。 explain 查出来的各列含义如下&#xff1a; id&#xff1a;在一个大的查询语句中&#xff0c;每个 select 关键字都对应一个唯一的 id select_type&#xff1a;…

Android手机投屏神器scrcpy

scrcpy 下装/安装 scrcpy 用于电脑控制 Android 设备的命令行工具 官方下载地址&#xff1a;https://github.com/Genymobile/scrcpy/releases 非官方下载地址 https://download.csdn.net/download/weixin_43335288/88505202 下载后直接解压&#xff08;免安装&#xff09; 连…

BUG:编写springboot单元测试,自动注入实体类报空指针异常

原因:修饰测试方法的Test注解导入错误 造成错误的原因是 import org.junit.Test;正确的应该是 import org.junit.jupiter.api.Test前者是Junit4,后者是Junit5 junit4的使用似乎要在测试类除了添加SpringbootTest还要添加RunWith(SpringRunner.class) 同时要注意spring-boot-s…

YOLO对象检测算法也这么卷了吗——基于YOLOv8的人体姿态检测

前期的文章我们介绍了很多关于YOLO系列的对象检测算法,虽然YOLO系列是应用在目标检测算法上,但是最近更新的YOLO系列算法都加入了对象分割,人体姿态检测等模型。 YOLOv8对象检测算法 2023年,Ultralytics再次发布YOLO更新模型,YOLOv8模型。Ultralytics YOLOv8是YOLO对象检…

[算法学习笔记](超全)概率与期望

引子 先来讲个故事 话说在神奇的OI大陆上&#xff0c;有一只paper mouse 有一天&#xff0c;它去商场购物&#xff0c;正好是11.11&#xff0c;商店有活动 它很荣幸被选上给1832抽奖 在抽奖箱里&#xff0c;有3个篮蓝球&#xff0c;12个红球 paper mouse能抽3次 蒟蒻的p…

西南科技大学814考研二

C语言数据结构与算法 线性表 顺序表(静态分配内存) #include <stdio.h> #include <stdbool.h> //静态顺序表 #define MAX_SIZE 8 //顺序表储存的数据类型 typedef int ElemType; typedef struct {ElemType data[MAX_SIZE];int length; }SeqList; //初始化顺序表…

【精选】HTML5最全知识点集合

HTML5简介与基础骨架 HTML5介绍 HTML5是用来描述网页的一种语言&#xff0c;被称为超文本标记语言。用HTML5编写的文件&#xff0c;后缀以.html结尾 HTML是一种标记语言&#xff0c;标记语言是一套标记标签。标签是由尖括号包围的关键字&#xff0c;例如&#xff1a;<html…

关于ASO优化的分步入门指南1

欢迎阅读我们的应用商店优化&#xff08;ASO&#xff09;分步指南&#xff0c;接下来我们将引导大家完成ASO研究的初始步骤&#xff0c;为提高应用程序的知名度和吸引自然下载奠定基础。 1、确定竞争对手。 首先确定应用程序的直接和间接竞争对手。我们可以通过咨询客户或进行…

RasberryPi 3B+ 树莓派 初识

关于香橙派的学习暂时告一段落&#xff0c;从本节开始学习树莓派3B&#xff01; 我在亚马逊官网购买了3b和壳子&#xff0c;安装完成后大概长这样&#xff1a; &#xff08;感觉的确像一台小型电脑主机了&#xff09; 树莓派的引脚功能图 图参&#xff1a;树莓派3B 引脚图说明…

4.3 Windows驱动开发:监控进程与线程对象操作

在内核中&#xff0c;可以使用ObRegisterCallbacks这个内核回调函数来实现监控进程和线程对象操作。通过注册一个OB_CALLBACK_REGISTRATION回调结构体&#xff0c;可以指定所需的回调函数和回调的监控类型。这个回调结构体包含了回调函数和监控的对象类型&#xff0c;还有一个A…

RK3568驱动指南|第七篇 设备树-第67章 of操作函数实验:获取属性

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

笔记54:门控循环单元 GRU

本地笔记地址&#xff1a;D:\work_file\DeepLearning_Learning\03_个人笔记\3.循环神经网络\第9章&#xff1a;动手学深度学习~现代循环神经网络 a a a a a a a

第八篇 基于JSP 技术的网上购书系统——商品信息查看、我的购物车、结算中心功能实现(网上商城、仿淘宝、当当、亚马逊)

目录 1.商品信息查看 1.1功能说明 1.2界面设计 1.3 处理流程 1.4数据来源和算法 1.4.1数据来源 1.4.2查询条件 1.4.3表间关系 1.4.4相关sql实例 2.我的购物车 2.1功能说明 2.2界面设计 2.3处理流程 2.4 数据来源和算法 3.结算中心 3.1功能说明 3.2界…

企业服务器中了babyk勒索病毒怎么办,babyk勒索病毒解密数据集恢复

网络技术的不断发展应用&#xff0c;为企业的生产生活提供了强有力帮助&#xff0c;企业也不断走向数字化办公模式&#xff0c;而对于企业来说&#xff0c;企业计算机存储的数据至关重要&#xff0c;如果不加以保护很容易造成数据丢失&#xff0c;近期&#xff0c;云天数据恢复…