转载:string、const char*、 char* 、char[]相互转换
本文转自:https://blog.csdn.net/rongrongyaofeiqi/article/details/52442169
一:转化总结形式如下:
使用时,要对源格式和目标格式进行初始化。源格式赋值为具体的内容,目标格式赋值为空。
二、总结方法:
1、 变成string,直接赋值。
2、 char[]变成别的,直接赋值。
3、 char*变constchar*容易,const char*变char*麻烦。<const_cast><char*>(constchar*);
4、 string变char*要通过const char*中转。
5、 变成char[]。string逐个赋值,char* const char* strncpy_s()。
三、代码实现
1、string转为其他类型
①、string转const char*
#include <iostream> int main() { std::string str = "HelloWorld!"; //初始化string类型,并具体赋值 const char* constc = nullptr; //初始化const char*类型,并赋值为空 constc= str.c_str(); //string类型转const char*类型 printf_s("%s\n", str.c_str()); //打印string类型数据 .c_str() printf_s("%s\n", constc); //打印const char*类型数据 return ; }
②、string转char*
#include <iostream> int main() { std::string str = "HelloWorld!"; //初始化string类型,并具体赋值 char* c = nullptr; //初始化char*类型,并赋值为空 const char* constc = nullptr; //初始化const char*类型,并赋值为空 constc= str.c_str(); //string类型转const char*类型 c= const_cast<char*>(constc); //const char*类型转char*类型 printf_s("%s\n", str.c_str()); //打印string类型数据 .c_str() printf_s("%s\n",c); //打印char*类型数据 return ; }
③、string转char[]
#include <iostream> int main() { std::string str = "HelloWorld!"; //初始化string类型,并具体赋值 char arrc[] = {}; //初始化char[]类型,并赋值为空 for (int i = ; i < str.length(); i++) //string类型转char[]类型 { arrc[i]=str[i]; } printf_s("%s\n", str.c_str()); //打印string类型数据 .c_str() printf_s("%s\n", arrc); //打印char[]类型数据 return ; }
2、const char*转为其他类型
①const char*转string
#include <iostream> int main() { const char* constc = "Hello World!"; //初始化const char* 类型,并具体赋值 std::string str; //初始化string类型 str= constc; //const char*类型转string类型 printf_s("%s\n", constc); //打印const char* 类型数据 printf_s("%s\n", str.c_str()); //打印string类型数据 return ; }
②const char*转char*
#include <iostream> int main() { const char* constc = "Hello World!"; //初始化const char* 类型,并具体赋值 char* c = nullptr; //初始化char*类型 c= const_cast<char*>(constc); //const char*类型转char*类型 printf_s("%s\n", constc); //打印const char* 类型数据 printf_s("%s\n", c); //打印char*类型数据 return ; }
③const char*转char[]
#include <iostream> int main() {
const char* constc = "Hello World!"; //初始化const char* 类型,并具体赋值 char arrc[] = { }; //初始化char[]类型,并赋值为空 strncpy_s(arrc,constc,); //const char*类型转char[]类型 printf_s("%s\n", constc); //打印const char* 类型数据 printf_s("%s\n", arrc); //打印char[]类型数据 return ; }
3、char*转为其他类型
①char*转string
#include <iostream> int main() { char* c = "HelloWorld!"; //初始化char* 类型,并具体赋值 std::string str; //初始化string类型 str= c; //char*类型转string类型 printf_s("%s\n", c); //打印char* 类型数据 printf_s("%s\n", str.c_str()); //打印string类型数据 return ; }
②char*转const char*
#include <iostream> int main() {
char* c = "HelloWorld!"; //初始化char* 类型,并具体赋值 const char* constc = nullptr; //初始化const char* 类型,并具体赋值 constc= c; //char*类型转const char* 类型 printf_s("%s\n", c); //打印char* 类型数据 printf_s("%s\n", constc); //打印const char* 类型数据 return ; }
③char*转char[]
#include <iostream> int main() {
char* c = "HelloWorld!"; //初始化char* 类型,并具体赋值 char arrc[] = { }; //初始化char[] 类型,并具体赋值 strncpy_s(arrc,c,); //char*类型转char[] 类型 printf_s("%s\n", c); //打印char* 类型数据 printf_s("%s\n", arrc); //打印char[]类型数据 return ; }
4、char[]转为其他类型
#include <iostream> int main() { char arrc[] = "HelloWorld!"; //初始化char[] 类型,并具体赋值 std::string str; //初始化string const char* constc = nullptr; //初始化const char* char*c = nullptr; //初始化char* str= arrc; //char[]类型转string类型 constc= arrc; //char[]类型转const char* 类型 c= arrc; //char[]类型转char*类型 printf_s("%s\n", arrc); //打印char[]类型数据 printf_s("%s\n", str.c_str()); //打印string类型数据 printf_s("%s\n", constc); //打印const char* 类型数据 printf_s("%s\n", c); //打印char*类型数据 return ; }
转载:string、const char*、 char* 、char[]相互转换的更多相关文章
- string、const char*、 char* 、char[]相互转换(待整理)
string.const char*. char* .char[]相互转换(全) https://blog.csdn.net/rongrongyaofeiqi/article/details/5244 ...
- [转载] C++ string, const char*, char* 之间互相转换
1, string转const char* 类型 string str = "abcdef"; const char* con_str = string.c_str() 2, co ...
- string、const char*、 char* 、char[]相互转换
转化总结如下: 目标格式 源格式 string const char* char* char[] string NULL const char*=string.c_str(); const char* ...
- C++ 字符串、string、char *、char[]、const char*的转换和区别
1.字符串 字符串本质就是一串字符,在C++中大家想到字符串往往第一反应是std::string(后面简称string) 字符串得从C语言说起,string其实是个类,C语言是没有class的,所以C ...
- 【C++】int、const char*、char*、char、string之间的转换
#include "stdafx.h" #include<string> #include<vector> #include<iostream> ...
- string,const char*,char*之间的相互转换
1. string转const char* string s = "abc"; const char* c_s = s.c_str(); 2. const char*转string ...
- const char*、char*、char* const、char[]、string的区别
1.const char* p: p is a pointer to const char(char const* p 一样) 意思就是不能通过p指针来修改p指向的内容(但是内容可以修改). 2. ...
- How to convert a std::string to const char* or char*?
How to convert a std::string to const char* or char*? 1. If you just want to pass a std::string to a ...
- string,const char*, char*转换之后还是指向同一片内存地址么?
class Same { public: void reverse(const char* str) { char* A = const_cast<char*>(str); A[] = ' ...
随机推荐
- DevExpress的TreeList怎样设置数据源,从实例入手
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- SQL Server温故系列(0):导航目录
创建本系列博文通用库表及数据的 SQL 语句:下载 SQL Server温故系列(0):导航目录 SQL Server温故系列(1):SQL 数据操作 CRUD 之增删改合 SQL Server温故系 ...
- 【设计模式】Singleton
前言 Singleton设计模式,确保全局只存在一个该类的实例.将构造器声明为private,防止调用(虽然还是可以使用反射来调用).声明一个静态的类实例在类中,声明一个公共的获取实例的方法.这篇博文 ...
- webpack本地开发起服务只能用localhost和端口号打开,不能用本地ip地址打开
这时候记得在webpack配置文件中 devServer中加host:'0.0.0.0' 或者在启动命令中加 --host 0.0.0.0
- 【转载】Gradle for Android 第二篇( Build.gradle入门 )
理解Gradle脚本 当然我们现在讨论的所有内容都是基于Android studio的,所以请先行下载相关工具.当我们创建一个新的工程,Android studio会默认为我们创建三个gradle文件 ...
- android studio学习----gradle多渠道打包
由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了. 友盟多渠道打包 废 ...
- linux ptrace I【转】
转自:https://www.cnblogs.com/mmmmar/p/6040325.html 这几天通过<游戏安全——手游安全技术入门这本书>了解到linux系统中ptrace()这个 ...
- Delphi-基础(for循环)
1.判断0~10之间,当循环I=3时候跳出当前循环,当I等于8时候,退出当前循环. procedure Countand(); var I: Integer; begin do begin Write ...
- Celery详解(2)
除了redis,还可以使用另外一个神器----Celery.Celery是一个异步任务的调度工具. Celery是Distributed Task Queue,分布式任务队列,分布式决定了可以有多个w ...
- 老男孩LINUX--打包压缩、查看、解压
tar就是打包的意思,打包就是将多个文件或者目录放置到一起,整体的大小没有变化,tar可以调用一些压缩的软件,比如zip,在打包的同时进行压缩.先来上一个例子: tar zcvf /tmp/etc.t ...