【C++】std::string 转换成非const类型 char* 的三种方法记录

news2024/9/24 17:55:12

std::string 有两个方法:data() 和 c_str(),都是返回该字符串的const char类型,那如何转换成非const的char呢?

下面展示三种方法:

  • 强转:char* char_test = (char*)test.c_str();
  • 使用string的地址:char* charPointer = &test[0];
  • 使用const_cast转换:char* charCast = const_cast<char*>(test.c_str());
#include <iostream>
#include <string>

using namespace std;

int main()
{
   cout << "Hello World" << endl; 
   std::string test = "hello string";
   printf("%s", test.c_str());
   
   char* char_test = (char*)test.c_str();
   printf("\nchar_test: %s", char_test);
   
   char* charPointer = &test[0];
   
   printf("\ncharPointer: %s", charPointer);
   
    char* charCast = const_cast<char*>(test.c_str());
    printf("\ncharCast: %s", charCast);
   
   return 0;
}

在这里插入图片描述

顺便提一句:C++11以后,string 的 data() 方法和 c_str() 方法作用一样,没区别了。that is, c_str() and data() perform the same function. (since C++11)

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

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

相关文章

Android 查看 md5

网上看了一大批文章老实说 百分之80的都是垃圾 , 都没有说明白怎么看 keytool -list -v -keyst xxx.jks 在自己的项目中 , terminal 输入上面命令 跟本就没有用看不到 md5 很多的文章让你找 signingReport , 但是你查看 自己的目录可能压根就没有这个 自己直接用手敲就可以…

分布式事务Seata实战-AT模式(注册中心为Eureka)

大致记录Seata的AT模式下创建项目过程中需要注意的点和可能遇到的问题。 本项目是以官网的给的示例&#xff08;即下图&#xff09;进行创建的&#xff0c;以Eureka为注册中心。 官网&#xff1a;Seata AT 模式 | Apache Seata™ 官方代码示例&#xff1a; 快速启动 | Apac…

JRT打印报告示例

借助JRT实现的打印客户端和打印元素绘制协议及表格元素&#xff0c;设计器基本成型&#xff0c;这次可以试着写一个用模板控制布局的打印报告示例了&#xff0c;测试点报告表格维护、打印标签、打印数据、打印条码、打印图片、打印表格。基于新架构的代码比M写打印简单多了&…

AGI即将出现,未来最重要的资源是算力和能源

丨划重点 ① 关于新模型的名字&#xff0c;奥特曼还没有明确的想法&#xff0c;但他称不喜欢像“iPhone 27”这样的命名方式。 ② 奥特曼认为AGI将在不久的将来出现&#xff0c;但对社会和工作的影响程度可能远低于预期。 ③ 奥特曼表示&#xff0c;尽管AI的潜力超过预期&#…

数据结构day1

1.思维导图 2.定义一个简单宏或宏函数&#xff0c;实现两个数交换。 3.定义字符类型指针&#xff0c;指针指向n个连续堆区内存&#xff0c;输入&#xff0c;计算字符串长度 定义函数&#xff0c;实现内存申请 定义函数&#xff0c;解释字符串长度 定义函数&#xff0c;释放内…

《亚太教育》期刊投稿方式

《亚太教育》杂志是国家新闻出版总署批准的正规教育类期刊&#xff0c;旨在传播教育文化信息和动态&#xff0c;展示教育实践模式和经验&#xff0c;搭建教育科研成果交流平台。杂志将致力于服务教育事业的创新发展&#xff0c;传播教育文化新信息&#xff0c;展示教育实践新模…

Electron Apple SignIn 登录

本人写博客&#xff0c;向来主张&#xff1a;代码要完整&#xff0c;代码可运行&#xff0c;文中不留下任何疑惑。 最讨厌写博客&#xff0c;代码只留下片段&#xff0c;文中关键的东西没写清楚。之前看了那么多文章&#xff0c;就是不告诉我clientId从哪来的。 官方资料地址&…

5. UE5 RPG使用GAS技能系统

之前也介绍过GAS的使用&#xff1a; UE 5 GAS Gameplay Ability System UE 5 GAS 在项目中处理AttributeSet相关 UE 5 GAS 在项目中通过数据初始化 基础的讲解这里不再诉说&#xff0c;有兴趣的可以翻我之前的博客。 接下来&#xff0c;在RPG游戏中实现GAS系统的使用。 GAS系统…

一次缓存失效引发的惨案!

分享是最有效的学习方式。 故事 对于小猫来讲&#xff0c;最近的一段日子是不好过的&#xff0c;纵使听着再有节拍的音乐&#xff0c;也换不起他对生活的热情。由于上一次“幂等事件”躺枪&#xff0c;他已经有几天没有休息好了。他感觉人生到了低谷。 当接手这个商城项目之后…

Linux 为何不把图形用户界面写入内核?

Linux 为何不把图形用户界面写入内核&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#…

禅道:从安装到使用,一篇文章带你全面了解

博客前言&#xff1a; 在这个充满竞争和快节奏的世界里&#xff0c;项目管理已经成为了许多行业的关键环节。禅道作为一种功能强大、易用的项目管理工具&#xff0c;正在被越来越多的企业和团队所采用。它不仅能帮助我们高效地管理项目&#xff0c;还能提升团队协作和沟通的效…

DC-1靶机刷题记录

靶机下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1GX7qOamdNx01622EYUBSow?pwd9nyo 提取码&#xff1a;9nyo 参考答案&#xff1a; https://c3ting.com/archives/kai-qi-vulnhnbshua-tiDC-1.pdf【【基础向】超详解vulnhub靶场DC-1】 https://www.bilibi…

【数据结构二】链表和LinkedList详解

目录 链表和LinkedList 1.链表的实现 2.LinkedList的使用 3.ArrayList和LinkedList的区别 4.链表OJ题训练 链表和LinkedList 当 在 ArrayList 任意位置插入或者删除元素时&#xff0c;就需要将后序元素整体往前或者往后 搬移&#xff0c;时间复杂度为 O(n) &#xff0c;效率…

ChatGLM-6B部署和微调实例

文章目录 前言一、ChatGLM-6B安装1.1 下载1.2 环境安装 二、ChatGLM-6B推理三、P-tuning 微调3.1微调数据集3.2微调训练3.3微调评估3.4 调用新的模型进行推理 总结 前言 ChatGLM-6B ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型&#xff0c;基于 General Language Mo…

unity-shader笔记OLD

shader shader在面板中的位置相关代码代码切换shader shader在面板中的位置 选中物体属性面板中 相关代码 代码切换shader 挂载到怪物上的shader名字统一叫body&#xff0c;然后获取上面的SkinnedMeshRender SkinnedMeshRender smr&#xff1b; //恢复到原来的shader …

JavaScript DOM可以做什么?

1、通过id获取标签元素 DOM是文档对象模型&#xff0c;它提供了一些属性和方法来方便我们操作document对象&#xff0c;比如getElementById()方法可以通过某个标签元素的id来获取这个标签元素 // 用法 window.document.getElementById(id); // 例子 <!DOCTYPE html> &l…

LeetCode、374. 猜数字大小【简单,二分】

文章目录 前言LeetCode、374. 猜数字大小【简单&#xff0c;二分】题目及类型思路及代码实现 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技…

移动云助力智慧交通数智化升级

智慧交通是在整个交通运输领域充分利用物联网、空间感知、云计算、移动互联网等新一代信息技术&#xff0c;综合运用交通科学、系统方法、人工智能、知识挖掘等理论与工具&#xff0c;以全面感知、深度融合、主动服务、科学决策为目标&#xff0c;推动交通运输更安全、更高效、…

联想拯救者冠名2024第二届OPENAIGC开发者大赛,开启AI落地新纪元

2024年1月17日&#xff0c;在联想拯救者及消费生态新品发布会上&#xff0c;AIGC开放社区携手联想拯救者&#xff0c;宣布将共同举办“AI生成未来第二届拯救者杯OPENAIGC开发者大赛”。此次大赛旨在集结所有开发者的智慧和创造力&#xff0c;推动人工智能技术的创新和应用实践。…

Promise的几道基础题

event loop它的执行顺序&#xff1a; 一开始整个脚本作为一个宏任务执行执行过程中同步代码直接执行&#xff0c;宏任务进入宏任务队列&#xff0c;微任务进入微任务队列当前宏任务执行完出队&#xff0c;检查微任务列表&#xff0c;有则依次执行&#xff0c;直到全部执行完执…