C++标准库string

一、标准C++库头文件 #include <string>

二、string 对象的读写

    string s;

    1.标准输入输出读取string对象:cin>>s;(1)读取并忽略开头所有空白字符(如空格、换行符、制表符);(2)读取字符直至再次遇到空白字符,读取终止;

    2.使用getline函数读取一行文本:getline(cin,s);(1)getline函数从输入流的下一行读取,读取内容放在s中,不包括换行符;(2)getline不忽略开头的换行符。遇见换行符就终止,如果其作为第一个字符,则s置为空string

     两者都将istream对象作为返回值,因此可以通过返回对象判断输入流是否有效。

    eg:循环读入未知数目string对象

#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;

int main()
{
	/*string s;
	while(cin>>s)
	{
		cout<<s<<endl;
	}
	return 0;
}
    eg:将上面改为读入一行文本   

string line;
while(getline(cin,line))
{
	cout<<line<<endl;
}

三、string对象的基本操作

    string s;

    1.s.size();//返回字符个数

    返回类型是string::size_type类型,被定义为unsigned型具有相同的含义,这是一种配套类型(companion type),通过它们,库类型使用可以实现机器无关性。(存储s.size()返回值的变量必须定义为string::size_type类型,不能讲其赋值给int类型)

     2.s.empty()//判断是否为空

     3.string的关系操作符 

    string对象的比较实际是比较每个string对象的字符,按照字典顺寻,区分大小写,在多数系统上,大写字母小于任意小写字母。

    (1)==:长度相同,字符相同

    (2)如果两个string对象长度不同,短的与长的前面相同,则短的小于长的

    (3)如果两个对象字符不同,比较第一个不同

    4.赋值操作

    支持赋值操作,string s1,s2="hello world";s1=s2;理论上的过程是释放s1的原有空间,分配足够存放s2副本的空间,复制。

    5.连接操作 

    (1)使用+操作符; string s3=s1+s2; +操作符返回的是一个string对象

    (2)使用复合赋值操作符+=;s1+=s2;

    (3)与字符串字面值的连接;这里我理解字符串字面值就是一个匿名常量字符串。+操作符左右操作数中必须至少有一个是string类型的。string s4=s1+"hello";

    6.从string对象获得字符

     通过string::size_type类型的下标([index])来访问string对象的字符; 下标操作符返回值可以作为左值,即s[index]='*';注意,在标准库中,不检查索引值,所以下标越界的错误是没有定义的,容易导致运行时错误。

string s="hello world";
for(string::size_type index=0;index<s.size();index++)
{
	cout<<s[index]<<" ";
}
    7.string对象中的字符处理

     string对象中的字符处理可以应用各种字符处理函数,这些函数在cctype头文件中定义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值