C-串与string

一、C-串

1.其为字符串字面值,格式为 双引号括起来的字符序列

2.以 全零字节 结尾,即通常说的 \0 或 ASCII值为0 ,因此,C-串的空间长度会比表面上多1。若要将C-串放入字符数组中,则数组元素的个数应至少比C-串字符数多1。

3.其类型可视为 const char * (事实上,所有字面值类型都是const的,因为它们被放在常量存储区)。

char * str = "Hello" ; //OK
int * a = 10 ; //error

4.比较C串的字典序可使用strcmp,不能直接比较如:“jion”==“jion”...

5.库函数还为C串提供了strcpy复制、strcat连接、strrev倒置、strset设置、strstr查找串、strchr查找字符的操作。它们默认在string.h的头文件中,在标准C++中,由于iostream头文件嵌套包含了它,所以程序中能省略#include<string.h>。

二、string类型

string类型支持长度可变的字符串(它处理空间占用问题是自动的,由标准库管理相关内存),需包含: 

#include<string>
using std:string;

1.定义与初始化

string s1;//默认构造函数,s1为空串
string s2(s1);
string s3("value");
string s4(n,'c');//初始化s4为n个c字符的串

2.string对象的读写

可以使用cin和cout:

cin>>s;//会忽略开头的空白和再次遇到的空白及其之后
cout<<s;

另有两点注意一下:

(1) string的输入操作符可以返回所读的数据流(这和内置类型的输入操作符一样),可以使用 while(cin>>_string)来读取未知数目的string对象。

(2) 可以使用getline(cin,_string)来读取整行文本。

3.string对象的操作

  • _string.size()返回 string::size_type类型(配套类型的使用能与机器无关)的_string中的字符个数
  • _string.empty()返回true或flase
  • _string[n],下标操作,从0开始,可从string类型获取字符
  • _string1+_string2,连接字符串,还可以_string + C-串(字面值)
  • _string1 = _string2,字符串赋值
  • _string1 == _string2,判断字符串大小,注意这里是区分大小写的
    • 从前往后开始匹配字符,在ASCII前的为小,后的为大
    • 如果字符匹配完毕,依然相同,则按串的长短,短的为小,长的为大
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值