查漏补缺,巩固基础——C++Primer之旅day3
来源:互联网 发布:期货数据接口 编辑:程序博客网 时间:2024/06/05 17:37
标准库string类型
string类型的常用构造函数
string类型支持长度可变的字符串,头文件为<string>,当没有明确指定对象初始化式时,系统将使用默认构造函数。
string s1;//默认构造函数,s1是空串
string s2(s1);//将s2初始化为s1的一个副本
string s3("value");//将s3初始化为一个字符串字面值的副本
string s4(n,'c');//将s4初始化为n个'c'字符的字符串
注意:字符串字面值与string不是同一种类型,要注意区分。
string对象的操作
以下是string对象的成员函数:
s.empty()//如果s为空串,则返回true,否则返回false
s.size()//返回s中字符个数
s1+s2//把s1和s2连接成一个新字符串,并返回这个新字符串
s1=s2//把s1的内容替换成s2的副本
s1==s2//比较s1和s2的内容,相等返回true,否则返回false
string::size_type类型
string类型的size()成员函数返回的不是(想当然的)整型值,而是string::size_type类型的值。string类类型和许多其他库类型都定义了一些配套类型(companion type),通过这些配套类型,库类型的使用就能与机器无关。string::size_type就是一种配套类型,我们不知道string::size_type的确切类型,但必须知道它是unsigned型的。
string关系操作符
两个strin对象相等,是指他们的长度相同,且对应位置含有相同的字符(区分大小写)。关系操作符比较两个string对象时采用了如下策略:
*如果两个string对象的字符不同,则比较第一个不匹配字符的ascii码值
*如果两个string对像长度不同,但短的string对象与长的string对象的前面部分相同,则短的string对象小于长的string对象。
string对象和字符串字面值的连接
当进行string对象和字符串字面值混合连接操作时,"+"操作符的左右操作数必须至少有一个是string类型的:
string s1 = "hello";
string s2 = "world";
string s3 = s1 + ", "; //ok
string s4 = "hello" + ", ";//error
string s5 = s1 + ", " + "world"; //ok
string s6 = "hello" + ", " + s2;//error
string对象下标操作符
string类型通过下标操作符([ ])来访问string对象的单个字符,下标操作符需要取一个size_type类型的值,来标明要访问字符的位置,这个值通常被称为“下标”或“索引”。
string str("hello world");
for (string::size_type ix = 0; ix != str.size(); ++ix)
cout<<str[ix]<<endl;
string对象对字符的处理
string对象有许多对单个字符进行处理的函数,它们都在cctype头文件中定义。以下列举几个常用字符处理函数:
isalpha(c) //如果c是字母,则为true
isdigit(c) //如果c是数字,则为true
tolower(c)//将大写字母变成小写字母并返回
toupper(c)//将小写字母变成大写字母并返回
0 0
- 查漏补缺,巩固基础——C++Primer之旅day3
- 查漏补缺,巩固基础——C++Primer之旅day1
- 查漏补缺,巩固基础——C++Primer之旅day2
- 查漏补缺,巩固基础——C++Primer之旅day4
- C语言——查漏补缺
- 查漏补缺——函数(C++ Primer)
- 查漏补缺——类(C++ Primer)
- 查漏补缺——顺序容器(C++ Primer)
- c语言基础查漏补缺
- c语言查漏补缺——指针
- C语言查漏补缺——关键字篇
- c语言查漏补缺——指针
- 查漏补缺——C/C++基本类型
- Java基础查漏补缺
- Java基础查漏补缺
- 基础测试查漏补缺
- C语言查漏补缺
- c语言查漏补缺
- Android ExpandableList扩展用法
- mongoDB简明教程-python(转)
- 配置Source Insight阅读PHP项目的代码
- Android学习笔记(1)
- Linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解
- 查漏补缺,巩固基础——C++Primer之旅day3
- 局部加权线性回归
- hibernate开发步骤
- HDU 1548
- C++日志库log4cplus:SocketAppender记录日志到log Server
- 【C/C++学习】之十七、C++11中我们需要关注的
- android:descendantFocusability用法简析
- Seam - 无缝集成 JSF,第 1 部分: 为 JSF 量身定做的应用程序框架
- Linux source code Makefile分析