char

C++中的char是字符的意思,可以用例如'a'来表示,每个字符串string都是由很多个单独的字符char组成。

char*

char*是一个指针,例如:char* s1 = "abc",s1是一个指针,指向一个字符串常量“abc",s1这个指针可以被修改,但是字符串常量不可被修改,如果修改s1的内容,如s1="123",修改的并不是”abc”的内容,而是将s1的指针指向了新的地址。可以通过对char*类型进行解引用获得位于第一个的元素,如*s1=‘a',并且可以用过+对指针的位置进行移位。可以通过strlen函数获取char*类型的长度。

char[]

char s2[10]="abc",s2是数组指针,指向数组第一个元素所在的地址,分配后就不可修改了,但是指针指向的内容是可以修改的,如s2[0]='1',就是把'a'改为'1'。且数组大小是初始化的时候就确定的,不可修改。

char*、char[]、string之间的转换

  • char[]与char*进行转换
// char[]转char*:直接赋值
char str[] = "abc";
char *str1 = str;// char*转char[]:字符拷贝实现,不能进行赋值操作
const char *str = "abc";
char str1[] = "12345";
strncpy(str1, str, strlen(str) + 1);    // 注意加1操作 
  • char*与string进行转换
// char*转string
const char *str = "hello";
// 赋值转换
string str1 = str;
// 构造转换
string str2(str, str + strlen(str));// string转char*:赋值转换
string str = "abc";
char *str1 = const_cast<char *>(str.c_str());
  • char[]与string进行转换
// char[]转string
// 直接赋值
char str[] = "abc";
string str1 = str;
// 构造实现
string str2(str, str + strlen(str));// string转char[]:构造实现
string str = "12345";
char str1[] = "qwerty";
strncpy(str1, str.c_str(), str.length() + 1);

C++中的char,char*,char[]相关推荐

  1. java中String,int,Integer,char、double类型转换

    java中String,int,Integer,char.double类型转换----https://www.cnblogs.com/kangyu222/p/5866025.html 转载于:http ...

  2. int main( int argc , char *argv[] , char *envp[] )中参数解说

    原文链接:https://blog.csdn.net/mengyandelove/article/details/82285504 argc是命令行总的参数个数 argv[]是argc个参数,其中第0 ...

  3. c++中关于char数组/char*指针/string类型

    c++中关于char数组/char*指针/string 小渣渣一直被有关string和char[]以及char*的相关问题弄得痛不欲生,传参.返回值.函数调用等到底应该用哪种形式这真的是让小渣癫狂了, ...

  4. C++中string、char *、char[]的转换

    C++中string.char *.char[]的转换 头段时间有人问过我这个问题,可是我一点头绪都没有,直接说不会.现在从网上找了点资料,看了看,知道点东西了. 一.string转char*. 主要 ...

  5. MFC中CString,int,string,char * ,char[] 之间互转

    <1> (1)string 转 CString  CString.format("%s", string.c_str());   (2)char 转 CStri ...

  6. c++中char * 和 char []的区别-转

    问题引入: 在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内 容程序是会崩溃的,而后者完 ...

  7. 将所有的表中,数值类型由char,varchar改为nchar,nvarchar 的存储过程

    /*--将所有的表中,数值类型由char,varchar改为nchar,nvarchar 的存储过程 --邹建 2004.02(引用请保留此信息)--*/     /*--调用示例:         ...

  8. 两个字符串 char* a, char* b,输出b在a中的位置次序。

    /**题目: 两个字符串 char* a, char* b,输出b在a中的位置次序.void output_postion(const char* a, const char* b);如:a = &q ...

  9. 编写一个程序实现顺序栈(假设栈中元素类型为char)的各种基本运算

    编写一个程序实现顺序栈(假设栈中元素类型为char)的各种基本运算,并在此基础上设计一个主程序完成如下功能: (1)初始化顺序栈S; (2)判断顺序栈S是否为空: (3)依次进栈元素a,b,c,d,e ...

  10. C语言中字符型(char)的简单使用

    C语言中字符型(char)的简单使用 刚接触C语言不久,在这记录下自己的一些学习心得.今天主要是在敲代码时遇到了一个小问题,如图: 应该是个比较简单的编程题.在我的想法中,应该使用循环逐个读入由A至Z ...

最新文章

  1. LeetCode简单题之按既定顺序创建目标数组
  2. Java文件非法字符
  3. *62.分页和分段的区别
  4. 中国小金属行业十四五供应需求及发展前景研究报告2021版
  5. 「Luogu1552」[APIO2012]派遣
  6. CodeForces - 1454F Array Partition(线段树+二分)
  7. Python获取磁盘使用信息,python获取GPU信息!
  8. Android直播APP源码搭建中豪华物特效的实现
  9. 从矩阵谱分解到矩形的最少正方形剖分
  10. Linux下SD卡驱动移植
  11. @POST和GET的区别?
  12. 计算机网络基础之物理层功能与协议
  13. excel午晚加班考勤统计(excel快速计算午多少个和晚多少个)
  14. 从程序员到技术总监:一个普通人13年的奋斗
  15. 《三体》与《西部世界》
  16. cocos2d 高德地图_高德地图SDK使用经验
  17. 网站实现qq登录(springboot后台)
  18. Matlab常用函数集锦
  19. Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)
  20. cJson使用的简单例子

热门文章

  1. python去除\u3000,空格,\n等
  2. pe系统如何读取手机_什么是otg(pe系统如何读取手机)
  3. CS党必须了解的P/NP常识
  4. bzoj1613 贝茜的晨练计划
  5. 1875. 贝茜的报复
  6. 变速不变调播放mp3-QT-QAudioOutput-lame-sonic
  7. Linux/Centos7搭建饥荒服务器教程
  8. 一个冷门json类JacksonJsonParser中的坑
  9. 利用福禄克光纤测试仪了解综合布线
  10. Linux硬盘分区mbr还是gpt,涨姿势:MBR和GPT硬盘分区表的那些事儿