C++中的char,char*,char[]
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[]相关推荐
- java中String,int,Integer,char、double类型转换
java中String,int,Integer,char.double类型转换----https://www.cnblogs.com/kangyu222/p/5866025.html 转载于:http ...
- int main( int argc , char *argv[] , char *envp[] )中参数解说
原文链接:https://blog.csdn.net/mengyandelove/article/details/82285504 argc是命令行总的参数个数 argv[]是argc个参数,其中第0 ...
- c++中关于char数组/char*指针/string类型
c++中关于char数组/char*指针/string 小渣渣一直被有关string和char[]以及char*的相关问题弄得痛不欲生,传参.返回值.函数调用等到底应该用哪种形式这真的是让小渣癫狂了, ...
- C++中string、char *、char[]的转换
C++中string.char *.char[]的转换 头段时间有人问过我这个问题,可是我一点头绪都没有,直接说不会.现在从网上找了点资料,看了看,知道点东西了. 一.string转char*. 主要 ...
- MFC中CString,int,string,char * ,char[] 之间互转
<1> (1)string 转 CString CString.format("%s", string.c_str()); (2)char 转 CStri ...
- c++中char * 和 char []的区别-转
问题引入: 在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内 容程序是会崩溃的,而后者完 ...
- 将所有的表中,数值类型由char,varchar改为nchar,nvarchar 的存储过程
/*--将所有的表中,数值类型由char,varchar改为nchar,nvarchar 的存储过程 --邹建 2004.02(引用请保留此信息)--*/ /*--调用示例: ...
- 两个字符串 char* a, char* b,输出b在a中的位置次序。
/**题目: 两个字符串 char* a, char* b,输出b在a中的位置次序.void output_postion(const char* a, const char* b);如:a = &q ...
- 编写一个程序实现顺序栈(假设栈中元素类型为char)的各种基本运算
编写一个程序实现顺序栈(假设栈中元素类型为char)的各种基本运算,并在此基础上设计一个主程序完成如下功能: (1)初始化顺序栈S; (2)判断顺序栈S是否为空: (3)依次进栈元素a,b,c,d,e ...
- C语言中字符型(char)的简单使用
C语言中字符型(char)的简单使用 刚接触C语言不久,在这记录下自己的一些学习心得.今天主要是在敲代码时遇到了一个小问题,如图: 应该是个比较简单的编程题.在我的想法中,应该使用循环逐个读入由A至Z ...
最新文章
- LeetCode简单题之按既定顺序创建目标数组
- Java文件非法字符
- *62.分页和分段的区别
- 中国小金属行业十四五供应需求及发展前景研究报告2021版
- 「Luogu1552」[APIO2012]派遣
- CodeForces - 1454F Array Partition(线段树+二分)
- Python获取磁盘使用信息,python获取GPU信息!
- Android直播APP源码搭建中豪华物特效的实现
- 从矩阵谱分解到矩形的最少正方形剖分
- Linux下SD卡驱动移植
- @POST和GET的区别?
- 计算机网络基础之物理层功能与协议
- excel午晚加班考勤统计(excel快速计算午多少个和晚多少个)
- 从程序员到技术总监:一个普通人13年的奋斗
- 《三体》与《西部世界》
- cocos2d 高德地图_高德地图SDK使用经验
- 网站实现qq登录(springboot后台)
- Matlab常用函数集锦
- Xilinx 的FFT IP核使用方法(配置为FFT 、IFFT两种模式)
- cJson使用的简单例子
热门文章
- python去除\u3000,空格,\n等
- pe系统如何读取手机_什么是otg(pe系统如何读取手机)
- CS党必须了解的P/NP常识
- bzoj1613 贝茜的晨练计划
- 1875. 贝茜的报复
- 变速不变调播放mp3-QT-QAudioOutput-lame-sonic
- Linux/Centos7搭建饥荒服务器教程
- 一个冷门json类JacksonJsonParser中的坑
- 利用福禄克光纤测试仪了解综合布线
- Linux硬盘分区mbr还是gpt,涨姿势:MBR和GPT硬盘分区表的那些事儿