【24.1.9笔记】C++ Primer 自学 Day9

三、C++数据类型

4、字符串类型

        C++有两种字符串类型,一种是C风格的字符串,另一种是C++引入的字符串类型。

        C风格字符串:它被储存在一个字符数组中,一般通过char*来操作。使用标准c库中操作字符串数组的函数时,必须要引入头文件:

#include <cstring>

// 返回字符串的长度 
int strlen( const char* ); 
// 比较两个字符串是否相等 
int strcmp( const char*, const char* );  
// 把第二个字符串拷贝到第一个字符串中 
char* strcpy(char*, const char* );

        C风格的字符串指针也总是指向一个字符数组的第一个元素,即使是字符串常量,系统也会把常量储存在一个字符串数组中。一般用循环遍历方式访问。可以用解引用后是否为空字符来作为判断条件。

        C风格字符串的长度可以为0,有两种方式:

        1、把字符串指针置零  

                                                char *pc1 = 0;

        2、字符串指针指向的数组只有一个空字符

                                                const char *pc2 = "";

        使用指针遍历字符串数组时需要注意:

        1、在循环体条件中,要注意解引用,否则可能会陷入无限循环。

        2、如果要指针在遍历后重新指向原来字符串的头部,需要st=st-len-1,重新让指针定位。也可以再定义一个新的指针,让它代替st遍历字符串数组。

        C++标准库也提供了抽象的字符串类【string】:也必须包含头文件<string>,以下是string的一些操作方式:

string str("The world"); //定义1
string str1(str); //拷贝构造,也可以用显式
str.size();    //返回有多少个字符
str.empty();   //返回bool类型的true和false判断有无内容
str+=str1;   //将两个或者多个字符串连接起来

        C风格字符串和string字符串的混合使用:

        1、string能将C风格字符串直接转换成srting

        2、反向的转换不能自动进行,必须显式调用c_str()函数,然而这样的调用会返回一个指向常量数组的指针,必须加上const修饰符定义。

const char *str = s1.c_str(); // ok

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值