60-C++比较string类字符串

本文介绍如何使用C++标准库中的string类来进行字符串比较,通过一个简单的程序实例展示了string类对象如何利用关系运算符进行比较,并解释了其背后的实现机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                  比较string类字符串

    如果使用string类字符串而不是C-风格字符串,比较起来将简单些,因为类设计让您能够使用关系运算符进行比较。这之所以可行,是因为类函数重载(重新定义)了这些运算符。后面将介绍如何将这种特性加入到类设计中,但从应用的角度说,我们限制只需直到可以将关系运算符用于string对象即可。下面的程序通过修改上一个程序,它使用的是string对象而不是char数组。

该程序的输出与上一个程序相同。

//compstr2.cpp——comparing strings using arrays 
#include<iostream>
#include<string>
int main()
{
    using namespace std;
    string word = "?ate";
    for(char ch = 'a' ; word!="mate"; ch++)
    {
    	cout<<word<<endl;
    	word[0] = ch;
	}
	cout<<"After loop ends,word is "<<word<<endl;
    return 0;

}

程序说明

在程序中,下面的测试条件使用了一个关系运算符,该运算符的左边是一个string对象,右边是一个C-风格字符串:

word != mate;

String类重载运算符!=的方式让您能够在下述条件下使用它,至少有一个操作数为string对象,另一个操作数可以是string对象,也可以是C-风格字符串。

string类的设计让您能够将string对象作为一个实体(在关系型测试表达式中)也可以将其作为一个聚合对象,从而使用数组表示法来提取其中的字符。

正如您看到的,使用C-风格字符串和string对象可获得相同的结果,但使用string对象更简单、更直观。

最后,和前面大多数for循环不同,此循环不是计数循环。也就是说,它并不对语句块执行指定的次数。相反,此循环将根据情况(word 为”mate”)来确定是否停止。对于这种测试,C++程序通常使用while循环,下面将会讲到while循环。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值