查漏补缺,巩固基础——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
原创粉丝点击