C++ 字符串比较的代码

前面讲了可以利用 string 实例的 CompareTo 方法进行字符串比较,现在谈谈 string 的静

态方法 Compare,Compare 也是字符串比较,但功能更强。

基本语法

Compare 有多个重载函数,列出最简单的一个。

public static int Compare (
    string strA,
    string strB
)
返回值

小于零,strA 小于 strB;
零,strA 等于 strB;
大于零,strA 大于 strB。
示例

int result = string.Compare("abc", "ABC");
int result = string.Compare("abc", "ABC", true) //忽略大小写比较

但下面我们要讲的更复杂实用

#include <iostream.h>
#include <string>
using std::string;

main(void)
{
   string s1 = "abcdefghijk", s2 = "1234567890", s3,s4,s5;

   s3=s1+s2;
   cout << s3 <<endl;

   s4=s3;
   if (s4==s3)
      cout << " s4==s3 is truen";

   return(0);
}

/*
abcdefghijk1234567890
 s4==s3 is true

*/

进行字符大小比较

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

#include <string>
using std::string;

int main()
{
   string s1( "AA" );
   string s2( " AAB" );
   string s3;

   //
   cout << "s1 is "" << s1 << ""; s2 is "" << s2
      << ""; s3 is "" << s3 << '"'
      << "nnThe results of comparing s2 and s1:"
      << "ns2 == s1 yields " << ( s2 == s1 ? "true" : "false" )
      << "ns2 != s1 yields " << ( s2 != s1 ? "true" : "false" )
      << "ns2 >  s1 yields " << ( s2 > s1 ? "true" : "false" )
      << "ns2 <  s1 yields " << ( s2 < s1 ? "true" : "false" )
      << "ns2 >= s1 yields " << ( s2 >= s1 ? "true" : "false" )
      << "ns2 <= s1 yields " << ( s2 <= s1 ? "true" : "false" );
   return 0;
}

/*
s1 is "AA"; s2 is " AAB"; s3 is ""

The results of comparing s2 and s1:
s2 == s1 yields false
s2 != s1 yields true
s2 >  s1 yields false
s2 <  s1 yields true
s2 >= s1 yields false
s2 <= s1 yields true
 */

看实例

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

#include <string>
using std::string;

int main()
{
   string string1( "AAAAAAAAAAAAAA" );
   string string2( "BBBBBBBBBBBBBB" );
   string string3( "CCCCCCCCCCCCCC" );
   string string4( string2 );
  
   cout << "string1: " << string1 << "nstring2: " << string2
      << "nstring3: " << string3 << "nstring4: " << string4 << "nn";

   // comparing string2 and string4
   int result = string4.compare( 0, string2.length(), string2 );

   if ( result == 0 )
      cout << "string4.compare( 0, string2.length(), " << "string2 ) == 0" <<

endl;
   else {
      if ( result > 0 )
         cout << "string4.compare( 0, string2.length(), " << "string2 ) > 0" <<

endl;
      else
         cout << "string4.compare( 0, string2.length(), "
            << "string2 ) < 0" << endl;
   }
   return 0;
}

/*
string1: AAAAAAAAAAAAAA
string2: BBBBBBBBBBBBBB
string3: CCCCCCCCCCCCCC
string4: BBBBBBBBBBBBBB

string4.compare( 0, string2.length(), string2 ) == 0

 */

时间: 2024-12-28 10:31:15

C++ 字符串比较的代码的相关文章

Lua中计算、执行字符串中Lua代码的方法

  这篇文章主要介绍了Lua中计算.执行字符串中Lua代码的方法,类似JavaScript中eval函数的功能,在Lua中也可以实现,需要的朋友可以参考下 一.Lua中执行字符串 运行过程中有个问题,我有个字符串,是一个数学表达式,如何计算这个字符串表达式的值呢? 比如,local param = "7*100", 我需要的结果其实是700,但是怎么样直接计算出这个值呢?方法如下 字符串前面 加个 "return" 然后loadstring以后得到一个functio

asp.net(c#) 使用Rex正则来生成字符串数组的代码

看这儿.如果你熟悉正则表达式 ,让我们进入正题.这个TOOL的名称叫Regular Expression Exploration. 你可以从这儿下载 .目前的版本是1.0 release. Rex是一个命令行工具, 具体用法可以在CMD下执行便可以看到用法,这个是.net的程序.我们可以引用它,然后用下面的Code来生成我们想要的字符串数组. 复制代码 代码如下: /// <summary> /// Generates the test. /// </summary> /// &l

JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)_javascript技巧

js判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证. 废话不多说上代码: <html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie

mssql sql 字符串截取实例代码

mssql sql 字符串截取实例代码 关于字符串截取我们用substring函数 substring   (   expression   ,   start   ,   length   )   返回字符.binary.text   或   image   表达式的一部分. 参数 expression 是字符串.二进制字符串.text.image.列或包含列的表达式.不要使用包含聚合函数的表达式. start 是一个整数,指定子串的开始位置. length 是一个整数,指定子串的长度(要返回

asp.net c++字符串查找的代码

asp教程.net c++字符串查找的代码 在字符串srcstr中查找字符串deststr,如果找到,则返回字符串deststr在字符串srcstr中的 位置. #include <string> #include <iostream> #include <algorithm> using namespace std; bool nocase_compare (char c1, char c2) {     return toupper(c1) == toupper(c

THINKPHP截取中文字符串函数实例代码

在项目开发中,我们常常会遇到英文.中文等字符串截取问题,比如说新闻列表页面需要新闻内容简介,这就要用到字符串截取了. 下面就为大家分享一个THINKPHP中已经准备好的字符串截取函数. # 函数解释: msubstr($str, $start=0, $length, $charset="utf-8″, $suffix=true) /* $str:要截取的字符串 $start=0:开始位置,默认从0开始 $length:截取长度 $charset="utf-8″:字符编码,默认UTF-8

再来一个一个把字符串按php代码高亮显示的函数

高亮显示|函数|字符串 ///// by iwind.org  coldwind/iwind/month/ccterran//这个函数是对标签里的内容进行分析,并输出//例如://  <?php $string=' 以下内容为程序代码<?$hello="hello";?>sssssssssssss';//        highlight($string);//    ?>//保留了不完全的标签,如只有 以下内容为程序代码,没有,则输出中含有[code]    

消息值,托管字符串,扰乱代码及其它

许多 C++ 爱好者已经对我最近的专栏中渗入了太多关于C#的内容表示关注.我承认这一点!我唯一的辩解是:由于 Microsoft .NET Framework 已经获得广泛的认同,给我发送关于C#问题的读者越来越多,同时因为C# 和 C++ 如此类似,所以我就回答了一部分他们的问题.这不是我有意疏远 C++ 爱好者--上帝知道,我就是他们中的一员啊!不管怎样,为了突出重点,从这个月开始的 C++ 专栏将更多地专注于 C++ 的内容,包括托管扩展以及 MFC 这样的传统内容.因此提出你的 C++

替换敏感字符串的php代码

StrFilter.class.php <?php /** string filter class * Date: 2013-01-09 * Author: fdipzone * Ver: v1.0 * * Func: * public replace 替换非法字符 * public check 检查是否含有非法字符 * private protect_white_list 保护白名单 * private resume_white_list 还原白名单 * private getval 白名单

JavaScript实现的字符串replaceAll函数代码分享

  由于javascript中的replace函数无法替换全部匹配的字符串,所以需要为String类增加一个方法,代码如下: 代码如下: String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.isPrototypeOf(reallyDo)) { return this.replace(new RegExp(reallyDo, (ignoreCase ? "