收录日期:2020/06/02 03:35:22 时间:2016/06/12 02:12:19 标签:C++ 语言
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1="5130";
string s2="52";
char c[]="34";
int i,j,k,l,m,n;
i=s1.compare(s2);//将s2与s1比较,返回0为相等,1为s1大于s2,-1为s1小于s2
j=s2.compare(c);//将char型字符串c与s2比较
k=s1.compare(0,2,s2);//取s1前两个字符与s1做比较,参数1表示取的s1的字符长度
l=s1.compare(1,1,s2,0,1);//取s1[1]与s2[0]做比较,参数2和4分别表示取的s1和s2的字符长度
m=s1.compare(1,1,c,0,1);//取s1[1]与c[0]做比较,参数2和4分别表示取的s1和c的字符长度
n=s1.compare(1,1,c,1);//取s1[1]与c[0]做比较,参数1表示取的s1的字符长度
cout<<s1<<":"<<s2<<"="<<i<<endl; //依次输出各次比较
cout<<s2<<":"<<c<<"="<<j<<endl;
cout<<s1[0]<<s1[1]<<":"<<s2<<"="<<k<<endl;
cout<<s1[1]<<":"<<s2[0]<<"="<<l<<endl;
cout<<s1[1]<<":"<<c[0]<<"="<<m<<endl;
cout<<s1[1]<<":"<<c[0]<<"="<<n<<endl;
return 0;
}
compare比较字符串究竟以什么为基准,是一个字符一个字符的比较完然后汇总出所有比较结果,还是只比较第一字符就判断两个字符串的大小呢?糊涂!!另外string类的实现部分在哪里能看到,不要定义。
和strcmp相同。
当然在string这个头文件里,它也许会再#include一个真正实现文件,比如basic_string
因为string是basic_string模板类的一个特化版本。
compare 
Syntax: 
  #include <string>
  int compare( const string& str );
  int compare( const char* str );
  int compare( size_type index, size_type length, const string& str );
  int compare( size_type index, size_type length, const string& str, size_type index2,
  size_type length2 );
  int compare( size_type index, size_type length, const char* str, size_type length2 );

The compare() function either compares str to the current string in a variety of ways, returning

Return Value Case 
less than zero this < str 
zero this == str 
greater than zero this > str 

The various functions either:

compare str to the current string, 
compare str to a substring of the current string, starting at index for length characters, 
compare a substring of str to a substring of the current string, where index2 and length2 refer to str and index and length refer to the current string, 
or compare a substring of str to a substring of the current string, where the substring of str begins at zero and is length2 characters long, and the substring of the current string begins at index and is length characters long. 
For example, the following code uses compare() to compare four strings with eachother:

 string names[] = {"Homer", "Marge", "3-eyed fish", "inanimate carbon rod"};            

 for( int i = 0; i < 4; i++ ) {
   for( int j = 0; j < 4; j++ ) {
     cout << names[i].compare( names[j] ) << " ";
   }
   cout << endl;
 }              

Data from the above code was used to generate this table, which shows how the various strings compare to eachother:

 Homer Marge 3-eyed fish inanimate carbon rod 
"Homer".compare( x ) 0 -1 1 -1 
"Marge".compare( x ) 1 0 1 -1 
"3-eyed fish".compare( x ) -1 -1 0 -1 
"inanimate carbon rod".compare( x ) 1 1 1 0
www.cppreference.com/cppstring/compare.html
另外string类的实现部分在哪里能看到,不要定义。

看STL源码 ...
compare比较字符串究竟以什么为基准,是一个字符一个字符的比较完然后汇总出所有比较结果,还是只比较第一字符就判断两个字符串的大小呢?
========================
依次比较,
当当前字符相等时候,比较下一个字符。

如果当前字符可以知道大小,
则后面字符不再比较。

比较依据是ASCII码值大小。
谢谢瞌睡虫
请问大家,瞌睡虫说的对不对,对的话我就直接结贴了。
好像在MSDN里面有讲。还蛮详细的
lexical compare
请问大家,瞌睡虫说的对不对,对的话我就直接结贴了。
当当前字符相等时候,比较下一个字符。

如果当前字符可以知道大小,
则后面字符不再比较。

比较依据是ASCII码值大小。
好象输出的结果不太对
?????

谁有关于USB接口的资料或者开发实例,能不能告诉我些 如何判断一个字符串形式的数字是整型还是浮点型啊? MSComm控件的缓冲区问题 有谁试过不升级Bios,让老主板认别迈拓40G硬盘 如何在MSSQL的主表和子表中同时修改数据 初学者碰到 用Dephi做工资管理系统的问题 为什么我的CPU使用率总是100%? 哪儿能找到主板BIOS的源程序? 请问如何设置dialog的原始尺寸? Halcyon控件中的索引问题 有个问题,请高手帮我看看 想让大家帮我澄清几个概念 C#中用正则表达式读取某站点的所有链接或者图片,它的正则表达式如何写?? 问一个读取外部连接(读卡器)的问题,请帮帮忙各位大哥 请问oracle有Boolean类型吗? 如何用PERL使MODEM拨特定的号码? 晕死!刚才那帖没说明白,重新贴,悬赏700分,在线等。 关于treeview问题,求代码?最后30分,大家帮帮忙:) 或许应该做个女人更容易些 为什么我的JSP文件不能被解释? 打算写http server,能不能介绍写好资料 急!!!使用VB6用API怎么做NT下的服务啊!有那个大哥可以给个基本的框架!或例子!拜托啦! jsp页中的变量怎样传给javascript 再次向各位请教这个参数问题(花了我一周时间,还未搞好) 怎么控制字符长度的输入 提取SQL数据得问题 我怎样才能在重装系统(XP)后还能恢复windows mediaplayer播放列表中的内容? 找不到MFC42.LIB? WebLogic Server中部署一个WEB应用模板, 在其内部JSP中无法调用JAVABEAN(急急急) 已知三点构成一个三角形,如何判定两个共边的三角形在一个平面上?