字符数组和字符串,char 和string定义的字符串的区别与遍历
来源:互联网 发布:网络十大丑男杀马特图 编辑:程序博客网 时间:2024/05/20 11:21
原文链接:http://blog.csdn.net/mikedadong/article/details/53047500
字符数组:存储字符的数组
字符串 :是使用最频繁的字符数组,是一个特殊的字符数组
C++中并没有专门的字符串的类型,一个字符串实际上就是一个字符数组,与普通字符数组不同的是,字符串的结尾有一个字符\0,表示字符串的结束。
char 可以定义字符数组,也可以定义字符串
char 定义的字符数组
- 1
- 1
char定义字符串
字符串的优势在于输入、输出和赋初值,输入输出不需要使用循坏。字符数组需要用循环依次输出每个字符。
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
字符数组和字符串的区别
C++中,字符数组和字符串都是通过char关键字来定义的,但二者不同,显著的区别就是字符串的长度是字符数目加1,因为包含了\0结束符,而字符数组的长度就是字符的数目。对于字符数组可以通过sizeof求出其长度,但是对于字符串是其长度加上1。因此这个长度没有意义,为此C++可以用strlen求出字符串的有效内容的长度(不含字符串结束标识\0)。
指针与字符串、指针与字符数组
指针指向字符数组
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
//以下语句实现用指针输出hello。for (size_t i = 0; i < 5; i++) { cout << *pchar; pchar++; }
指针指向字符串
char定义的字符串
用char定义一个指针,并指向了char定义的字符串,那么用指针变量p 和*p输出的结果不一样,请看一下两种情况。 具体原因我也不知道。
方式1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
方式二
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
string定义的字符串
这里需要特别注意的是string并不是一个关键字,而是一个类。
下面代码的指针指向的是对象,而不是string中的第一个字符。
- 1
- 2
- 3
- 1
- 2
- 3
- 如果想访问string定义字符串中的每个字符,可以使用
str[i]
cout<<p1[0];//输出的是 hello world
- 不可像char定义的字符串那样使用p1[i],在string中,i>0并未分配指针,这种理解方式本来就错误。
用指针遍历 每个字符
- 用C++的迭代器
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 用
c_str() (Get C string equivalent)函数
转化为c类型的string,如下代码所示:
阅读全文
0 0
- 字符数组和字符串,char 和string定义的字符串的区别与遍历
- 字符数组和字符串,char 和string定义的字符串的区别与遍历
- 字符数组和字符串,char 和string定义的字符串的区别与遍历
- 数组字符串与指针字符串的区别 char s[]="***" 和char *s="***"的区别
- C++ 字符串string与字符数组char[ ]的异同
- string型字符串和char型字符串的区别
- 指针定义字符串和数组定义字符串的区别
- string字符串和char字符串的使用
- 字符串和字符数组的区别
- 字符串和字符数组的区别
- 字符串指针和字符数组的区别
- 字符数组和字符串的区别
- 字符串指针和字符数组的区别
- 字符数组和字符串的区别
- 字符数组和字符串的区别
- 字符数组和字符串的区别
- 字符数组和字符串的区别
- matlab:字符串数组和string的区别
- lua url转译
- anaconda2/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found Import No module named googl
- Adaptive Compressive Tracking via Online Vector Boosting Feature Selection(ACT算法解读)
- echart 去除网格线及其区域内颜色
- 程序员听黑怕,你怕不怕
- 字符数组和字符串,char 和string定义的字符串的区别与遍历
- Spring MVC 学习之基于注解的控制器
- DecimalFormat对数值格式化的舍入问题——RoundingMode
- JSTL、C标签在页面获取集合大小
- elasticsearch学习总结(三) API的使用范例3
- hihocoder 2017微软探星夏令营在线技术笔试 1534 Array Partition
- android 8.0 新建文件管理类
- 高斯混合模型(GMM)
- 909422229_基于Jquery的JqGrid列表插件使用