char []与char *之间转换

char []转char *:直接进行赋值即可

// char[] 转char *
char str[] = "lala";
char *str1 = str;
cout << str1 << endl;

char *转char[]:字符拷贝实现,不能进行赋值操作

// char *转换为char []
const char *st = "hehe";
char st1[] = "lalalala";
strncpy(st1, st, strlen(st) + 1); // 注意加1操作
// tp = temp; //错误,不能实现
cout << st1 << endl;

char 与const char 之间转换

const char 转char :拷贝实现,不能进行赋值

// const char *转char *
const char *st = "lala";
// 直接赋值不可以
//char *st1 = st; // (不可以编译器报错)
//cout << st1 << endl;
// 另外开辟空间,将字符一个一个复制过去
char *ncstr = new char[strlen(st) + 1];
strcpy(ncstr, st);
cout << ncstr << endl;

char 转const char :直接进行赋值

// char *转const char *
char *st = "hehe"; // (编译提示警告)
const char *st1 = st;
cout << st1 << endl;

char *与string之间转换

char *转string:1)直接赋值;2)构造转换实现

// char*转换为string
// (注意,定义char *变量,并直接赋值,最好定义为const变量,否则编译器警告)
const char *st = "hello";
// 赋值转换
string st1 = st;
cout << st1 << endl;
// 构造转换
string s1(st, st + strlen(st));
cout << s1 << endl;
// 改变const char *变量值
st = "lalala";
cout << st << endl;

string转char *:赋值操作(注意类型转换)

// string转char *
string st = "My test";
//char *st1 = st; // 错误类型不同
//char *st1 = st.c_str(); // 错误类型不同
char *st1 = const_cast<char *>(st.c_str()) ;
cout << st1 << endl;

char[]与string之间转换

char []转string:1)直接赋值;2)构造转换实现

// char[]转换为string
char st[] = "hello";
// 直接赋值实现
string st1 = st;
cout << st1 << endl;
// 构造实现
string st2(st, st + strlen(st));
cout << st2 << endl;

string转char[]:拷贝实现,不能直接赋值

// string转char []
string ts = "My test1";
//char ts1[] = ts; // 错误
//char ts1[] = const_cast<char *>(ts.c_str()); // 错误
char ts1[] = "lalallalalaaaa";
strncpy(ts1, ts.c_str(), ts.length() + 1); // 注意,一定要加1,否则没有赋值'\0'
cout << ts1 << endl;
return 0;

总结

涉及到char []字符数组与其它类型转换,一般需要进行拷贝,不能直接赋值实现。char []和char *都可以通过构造新的string完成其对string的转换。涉及到到char *转换,需要注意类型一致,同时注意const的使用。
---------------------
作者:Dream_yz
来源:CSDN
原文:https://blog.csdn.net/yzhang6_10/article/details/51164300
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/qiumingcheng/p/11204863.html

char[],char *,string之间转换相关推荐

  1. C++ 中 char[],char *,string之间转换

    char []与char *之间转换 char []转char *:直接进行赋值即可 // char[] 转char * char str[] = "lala"; char *st ...

  2. C#中char[]与string之间的转换

    C#中char[]与string之间的转换 原文:C#中char[]与string之间的转换 string 转换成 Char[] string ss = "abcdefg"; ch ...

  3. 转:char*, char[] ,CString, string的转换

    转:char*, char[] ,CString, string的转换 (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准 ...

  4. C# char[]与string之间的相互转换

    string 兑换 Char[] string ss = "abcdefg";char[] cc = ss.ToCharArray(); Char[] 转换成string stri ...

  5. Linux环境下实现unsigned char*向string的转换

    代码 unsigned char input_data[input_data_length] = {"This is my first encrypted plaintext hello w ...

  6. [转] HTML5 Blob与ArrayBuffer、TypeArray和字符串String之间转换

    1.将String字符串转换成Blob对象 //将字符串 转换成 Blob 对象 var blob = new Blob(["Hello World!"], {type: 'tex ...

  7. c++中int double 与char,string之间的转换

    1.字符串转int ,double, char str[] = "15.455";double db;int i;db = atof(str); // db = 15.455i = ...

  8. Android的JNI开发涉及的char和string之间的互相转换

    参考了文章:http://blog.csdn.net/ztp800201/article/details/7388189,http://blog.csdn.net/liaowenfeng/articl ...

  9. VC char和TCHAR之间转换

    char:计算机编程语言(c.c++.Java.VFP等)中可容纳单个字符的一种基本数据类型. TCHAR:为了满足Unicode编码,对char的扩展,即_T("str")表示T ...

最新文章

  1. 孙鑫VC视频学习笔记一
  2. 使用tab键分割的文章能快速转换成表格。( )_电脑上Tab键的8种超强用法,每一个都让人大开眼界!...
  3. Google Chrome input 设置 line-height 后光标变得和input一样高
  4. Java 基础 - 各项集合实现
  5. 整个技术架构结构设计
  6. ddt数据驱动常见的用法【多测师_王sir】
  7. gmx editconf命令
  8. TIM1_ETR和TIM1_CH有什么差别,要进行输入捕获
  9. OPC:服务器开发(一)如何开发OPC Server
  10. 使用Drupal Console,出现Failed to decode response: zlib_decode(): data error Retrying with degraded mode
  11. 数据分析实用工具——EXCEL下的power query自动取数
  12. 网关系统就该这么设计,万能通用,稳的一批!
  13. DWA局部路径规划算法论文阅读:The Dynamic Window Approach to Collision Avoidance。
  14. 证件照换底色,快试试这3种方法,方便还快捷
  15. 布莱克斯科尔斯模型(四)方程推导过程
  16. 这是一则招聘贴——招聘区块链系统开发实习生
  17. SQL Server的密码忘了怎么设置新密码
  18. 央企总动员:从上电股份,细数风流人物!
  19. SpringBoot集成jsoup多线程爬取美剧天堂全部电影资源
  20. kubernetes 介绍_Kubernetes的友好介绍

热门文章

  1. Topshelf:一款非常好用的 Windows 服务开发框架 转发https://www.cnblogs.com/happyframework/p/3601995.html...
  2. 《软件工程》总结——第十一章
  3. Java EE之RMI
  4. OpenCV的示例程序在哪里?
  5. python下requests的安装、测试、入门资料、官方资料
  6. dao加service加mysql实例_SpringBoot项目整合mybatis的方法步骤与实例
  7. php跳出volist,thinkphpvolist
  8. native2ascii插件配置
  9. matlab蚁群算法 降维,基于蚁群算法的路由问题研究
  10. leetcode算法题--机器人的运动范围