string、const char*、 char* 、char[]相互转换(全) - CSDN博客

文章推薦指數: 80 %
投票人數:10人

string、const char*、 char* 、char[]四者类型经常会需要转化。

一:转化总结形式如下:. 使用时,要对源格式和目标格式进行初始化。

string、constchar*、char*、char[]相互转换(全) rongrongyaofeiqi 于 2016-09-0517:39:41 发布 38537 收藏 103 分类专栏: C++ 文章标签: C++ string constchar char 版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/rongrongyaofeiqi/article/details/52442169 版权 C++ 专栏收录该内容 8篇文章 0订阅 订阅专栏 string、constchar*、char*、char[]四者类型经常会需要转化。

一:转化总结形式如下: 使用时,要对源格式和目标格式进行初始化。

源格式赋值为具体的内容,目标格式赋值为空。

源格式       目标格式stringconstchar*char*char[]stringNULLconstchar*=string.c_str();constchar*=string.c_str();char*=(constchar*);for(inti=0;i(constchar*);strncpy_s(char,constchar*,n);char*string=char*;constchar*=char*;NULLstrncpy_s(char,char*,n);char[]string=char;constchar*=char;char*=char;NULL 二、总结方法: 1、        变成string,直接赋值。

2、        char[]变成别的,直接赋值。

3、        char*变constchar*容易,constchar*变char*麻烦。

(constchar*); 4、        string变char*要通过constchar*中转。

5、        变成char[]。

string逐个赋值,char*constchar*strncpy_s()。

三、代码实现(方便初学者,贴的很详细。

了解了以上一二点,可跳过代码。

) 1、string转为其他类型 ①、string转constchar* #include"stdafx.h" #include   int_tmain(intargc,_TCHAR*argv[]) {    std::stringstr="HelloWorld!";    //初始化string类型,并具体赋值    constchar*constc=nullptr;        //初始化constchar*类型,并赋值为空    constc=str.c_str();                //string类型转constchar*类型    printf_s("%s\n",str.c_str());       //打印string类型数据.c_str()    printf_s("%s\n",constc);            //打印constchar*类型数据    return0; } ②、string转char* #include"stdafx.h" #include   int_tmain(intargc,_TCHAR*argv[]) {    std::stringstr="HelloWorld!";    //初始化string类型,并具体赋值    char*c=nullptr;                   //初始化char*类型,并赋值为空    constchar*constc=nullptr;        //初始化constchar*类型,并赋值为空    constc=str.c_str();                //string类型转constchar*类型    c=const_cast(constc);       //constchar*类型转char*类型    printf_s("%s\n",str.c_str());       //打印string类型数据.c_str()    printf_s("%s\n",c);                 //打印char*类型数据    return0; } ③、string转char[] #include"stdafx.h" #include   int_tmain(intargc,_TCHAR*argv[]) {    std::stringstr="HelloWorld!";     //初始化string类型,并具体赋值    chararrc[20]={0};                  //初始化char[]类型,并赋值为空    for(inti=0;i   int_tmain(intargc,_TCHAR*argv[]) {    constchar*constc="HelloWorld!";    //初始化constchar*类型,并具体赋值    std::stringstr;                        //初始化string类型    str=constc;                           //constchar*类型转string类型    printf_s("%s\n",constc);               //打印constchar*类型数据    printf_s("%s\n",str.c_str());          //打印string类型数据    return0; }   ②constchar*转char* #include"stdafx.h" #include   int_tmain(intargc,_TCHAR*argv[]) {    constchar*constc="HelloWorld!";    //初始化constchar*类型,并具体赋值    char*c=nullptr;                      //初始化char*类型    c=const_cast(constc);          //constchar*类型转char*类型    printf_s("%s\n",constc);               //打印constchar*类型数据    printf_s("%s\n",c);                    //打印char*类型数据    return0; } ③constchar*转char[] #include"stdafx.h" #include   int_tmain(intargc,_TCHAR*argv[]) {      constchar*constc="HelloWorld!";    //初始化constchar*类型,并具体赋值    chararrc[20]={0};                  //初始化char[]类型,并赋值为空    strncpy_s(arrc,constc,20);             //constchar*类型转char[]类型    printf_s("%s\n",constc);               //打印constchar*类型数据    printf_s("%s\n",arrc);                 //打印char[]类型数据    return0; } 3、char*转为其他类型 ①char*转string #include"stdafx.h" #include   int_tmain(intargc,_TCHAR*argv[]) {    char*c="HelloWorld!";          //初始化char*类型,并具体赋值    std::stringstr;                   //初始化string类型    str=c;                           //char*类型转string类型    printf_s("%s\n",c);               //打印char*类型数据    printf_s("%s\n",str.c_str());     //打印string类型数据    return0; } ②char*转constchar* #include"stdafx.h" #include   int_tmain(intargc,_TCHAR*argv[]) {      char*c="HelloWorld!";        //初始化char*类型,并具体赋值    constchar*constc=nullptr;    //初始化constchar*类型,并具体赋值    constc=c;                      //char*类型转constchar*类型    printf_s("%s\n",c);             //打印char*类型数据    printf_s("%s\n",constc);        //打印constchar*类型数据    return0; } ③char*转char[] #include"stdafx.h" #include   int_tmain(intargc,_TCHAR*argv[]) {    char*c="HelloWorld!";        //初始化char*类型,并具体赋值    chararrc[20]={0};           //初始化char[]类型,并具体赋值    strncpy_s(arrc,c,20);            //char*类型转char[]类型    printf_s("%s\n",c);             //打印char*类型数据    printf_s("%s\n",arrc);          //打印char[]类型数据    return0; } 4、char[]转为其他类型 #include"stdafx.h" #include   int_tmain(intargc,_TCHAR*argv[]) {    chararrc[20]="HelloWorld!";           //初始化char[]类型,并具体赋值    std::stringstr;                          //初始化string    constchar*constc=nullptr;             //初始化constchar*    char*c=nullptr;                         //初始化char*      str=arrc;                               //char[]类型转string类型    constc=arrc;                            //char[]类型转constchar*类型    c=arrc;                                 //char[]类型转char*类型      printf_s("%s\n",arrc);                   //打印char[]类型数据    printf_s("%s\n",str.c_str());            //打印string类型数据    printf_s("%s\n",constc);                 //打印constchar*类型数据    printf_s("%s\n",c);                      //打印char*类型数据    return0; } rongrongyaofeiqi 关注 关注 21 点赞 踩 3 评论 103 收藏 打赏 扫一扫,分享内容 点击复制链接 专栏目录 C++string、constchar*、char*、char[]相互转换(全) love、reading的博客 09-17 3110 string、constchar*、char*、char[]四者类型经常会需要转化。

一:转化总结形式如下: 使用时,要对源格式和目标格式进行初始化。

源格式赋值为具体的内容,目标格式赋值为空。

\目标格式 源格式 string constchar* char* char[] string NULL cons... string、constchar*、char*、char[]相互转换 Du_Shuang的博客 09-13 79 转载于:https://blog.csdn.net/rongrongyaofeiqi/article/details/52442169 谢谢原博主的总结。

string、constchar*、char*、char[]四者类型经常会需要转化。

一:... 评论 3 您还未登录,请先 登录 后发表或查看评论 constchar*和char*之间的转换 BlueMan 04-15 3670 constchar*和char*之间的转换   constchar*是指向常量的指针,而不是指针本身为常量,可以不被初始化.该指针可以指向常量也可以指向变量,只是从该指针的角度而言,它所指向的是常量,通过该指针不能修改它所指向的数据.  1.constchar*是不能直接赋值到char*的,这样编译都不能通过,理由:假如可以的话,那么通过char*就可以修改constchar指向的内容了,这是不允许的.所以char*要另外开... 关于constchar*和char*的转化问题 m0_61815203的博客 01-16 535 对于同一个地址的操作,可以将变量常量化,但不可以将常量变量化,否则会报错。

1.执行constchar*=char*后,使用变量指针可以对指向数据进行修改,而使用常量指针则不可以修改其指向的数据。

2.char*=constchar*是不被允许的,因为指向的数据不可能通过这样的赋值实现变量化。

注意:c++中的引用也是如此,引用的本质是指针。

int&n=constinti,显然不对constinti可以视作常数1,2,3之类具体的数,而引用是对变量的引用,起一个别名。

所以co C++中string、char*、char[]、constchar*的转换 lv0918_qian的博客 09-07 234 原文地址:https://blog.csdn.net/hebbely/article/details/79577880 简述: 1) char*转string:可以直接赋值。

2) char[]转string:可以直接赋值。

3) char*转char[]:不能直接赋值,可以循环char*字符串逐个字符赋值,也可以使用strcpy_s等函数。

4) string转char[]:不能直接赋值,... char*,constchar*和string三者转换 系统运维 11-30 708 1.constchar*和string转换 (1)constchar*转换为string,直接赋值即可。

EX:constchar*tmp="tsinghua". strings=tmp; (2)string转换为constchar*,利用c_str() EX:strings="tsinghua"; constc... constchar*与string的理解详解 weixin_38606457的博客 05-10 558 1、constchar*ptr==charconst*ptr;可以直接改变指针指向,但不能直接改变指针指向的值; 2、constchar*ptr==charconst*ptr;可以直接改变指针指向,但不能直接改变指针指向的值; 3、char*constptr;可以直接改变指针指向的值,但不能直接改变指针指向;ptr[0]='s'; chararr[]==constchar*constarr; 转化规律总结下: 1.转化成char[],可以用strc... 从string转换为constchar*和char*(附带string中c_str、data、copy(p,n)函数的用法) 最新发布 piglite的专栏 02-17 576 本文转自:如何从string转换为constchar*和char*(附带string中c_str()、data()、copy(p,n)函数的用法) 内容做了部分删改和排版。

string可以被看成是以字符为元素的一种容器。

标准的string类提供了STL容器接口。

具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。

与char*不同的是,string不一定以NULL('\0')结束。

string长度可以根据length()得到,string可以根据下标访问。

所以,不能将s string与constchar* 小飞将的博客 06-19 906 strings="hello"; constchar*cp=s.c_str(); constchar*p="hello"; cout<



請為這篇文章評分?