C++基础---字符串(char型字符串)
来源:互联网 发布:think php框架 编辑:程序博客网 时间:2024/06/05 11:50
1. 字符串(char型字符串)
1.1 C++字符串的定义
- 字符串:是以空字符(即 ‘\0’)结尾的字符数组。
注:‘\0’是一个空字符标志,它的ASCII码为0。C++中有好多处理字符串的函数,他们都是以空字符为结束标志,如cin和cout,他们在碰到空字符后将会停止输入或输出。
1.2 char型字符串
- char型字符串:是C语言风格的字符串;
- char型字符串字面值的类型:是char*(字符指针),说得更精准点是const char*。它与字符数组虽然类型不同,但操作是一样的,都表示char型字符串的起始地址;
char型字符串:又称C-字符串(C-串),是以空字符(即 ‘\0’)作为结束符的字符序列;
char buffer[7] = "Hello!";//正确,可见字符长度为6,加一个空字符,是7,等于数组定义的长度7char buffer[6] = "Hello!";//错误,可见字符长度为6,加一个空字符,是7,数组越界了=>注意数组长度必须是可见字符个数加1,因为要保存一个空字符
1.3 字符数组与字符指针的区别
字符数组:以数组的形式保存的字符串,数组中的一个元素存放一个字符,字符串中的每个元素都是可以改变的。如:
(1)赋值方式上:char ch[64]; ch = "Hello World";//这种赋值方式错误,不能被赋值编译错误提示信息:error C2440: “=”: 无法从“const char [64]”转换为“char [64]”由于对于字符数组只能对各个元素赋值,不能用以下办法对字符数组赋值。char ch[64] = "Hello World"; //初始化方式成功,只能被初始化
(2)内存位置上:
ch[0] = 'h'; ch[4] = 'O';//编译及运行都正常=>hellO World
字符指针:以指针的形式指向一串字符(该串字符是未命名字符串,被存放在文字常量区),字符串中每个元素的值都是不可以改变的。如:
(1)赋值方式上:char *p; p = "Hello World"; //正确的赋值方式<=>等价于char *p = "Hello World";//正确的赋值方式
(2)内存位置上:
*(p+0) = 'h'; *(p+4) = 'O';//编译正常,运行崩溃运行中断提示信息:xxx.exe 中的 0x012d4450 处有未经处理的异常: 0xC0000005: 写入位置 0x012d7838 时发生访问冲突=>我们只能读取每个元素的值,但是不能改变它。cout<< * (p+0) <<"\t"<< * (p+4) << endl;//编译及运行都正常=>h o</font>
参考文献:
[1]《C++全方位学习》范磊——第四章、第十四章、第十八章
[2]《C++程序设计教程(第二版)》钱能——第三章
[3] 百度搜索关键字:C++字符串、char型字符串、字符数组、字符指针
0 0
- C++基础---字符串(char型字符串)
- C - char字符串操作
- C++基础---char型字符串库函数
- string和c字符串(char*, char[])
- char型字符串
- C++ char型字符串
- c++中string类字符串和c中char*/char[]型型字符串的区别
- c++中string类字符串和c中char*/char[]型型字符串的区别
- char 字符串
- c++: 关于char型变量与字符串地址的输出
- C语言基础 字符串
- C语言基础 字符串
- C字符串基础
- 转换成C风格的char *字符串
- 关于C语言char *指向的字符串
- 十六进制字符串 char 数组 转换 c/c++
- C/C++ 将 字符串 赋给char[]
- C语言基础—字符串
- python常用库整理
- TQ2440利用nfs挂载文件系统不稳定,启动成功后,总是一会时间就重启
- LeetCode101 SynmetricTree Java题解
- 数组内数值的排序
- C语言程序设计 C语言中的时间函数
- C++基础---字符串(char型字符串)
- 花擦节 Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑们
- android TextView字体切换
- QPBOC交易流程详解--POS与卡片的数据交互进行分析
- Html 语法学习笔记一
- poj 1328 Radar Installation 贪心 暑假第三题
- KMP算法
- POJ3694 Network 割边+LCA
- C语言中输入输出重定,freopen()妙用