C++学习笔记Day2

发布时间 2023-10-20 20:28:34作者: MiceLove

关于String对象的一些事

1.string对象来源于C++标准库<string>,表示一种可变长的字符序列,定义在命名空间std之中。

2.string对象无初始值默认为空字符串。

3.若是使用等号对string变量进行初始化,属于拷贝初始化,不使用等号,如string s6("hiya"); string s7{"11123"}; string s8(10,"c");等,则属于直接初始化。

4.在C++中,可以这样的方法while(std::cin >> s),原理是:括号内的表达式在读取到空格或换行时,会结束一次循环。

5.可以使用getline函数,参数是一个输入流和string对象,如getline(std::cin,s),一旦读取到换行符,才算一次结束。

6.每个string对象都有empty()和size()函数,前者在对象为空时会返回1,后者会返回对象的长度。注:size()返回值类型属于string::size_type类型,不得与int类型变量在同一个表达式中使用。

7.string对象间比较规则:(1)部分相同比长度(2)遇到不同比第一个相异字符,若谁的第一个相异字符对应的ASCII码更大,谁就更大。

8.string对象可以和字符串字面值相加,如string s = "o" + s1;,但是string s = "p" + "q";,则是非法的,因为两个字面值无法相加,这是由于C++为了兼容C语言而背上的历史包袱,导致字面值并非属于string类型,而是char[]类型。

9.由于string对象属于一个字符序列,使得它可以被用于C++11标准中规定的一种新的for语句:范围for语句,其形式是for(declaration : expression) expressions; ,使用如此办法可以遍历序列中的每一个元素。若是想改变string中的每一个字符,可以在范围for语句中声明string元素的引用,然后在循环体中用引用来修改元素。

10.s[0]返回的是s对象的第一个元素的引用。