使用C-风格字符串中的strcmp()函数来比较。该函数接受两个字符串地址作为参数。这意味这参数可以是指针、字符串常量或字符数组名。如果两个字符串相同。该函数返回0,;如果第一个字符串按字母排序排在第二个字符之后,则strcpm()将返回一个正数值。实际上,“按系统排序顺序”比“按字母顺序”更准确。这意味着字符是根据字符的系统编码来进行比较的。例如,使用ASCII码时,所有大写字母的编码都比小写字母小,所以按排序顺序,大写字母将位于小写字母之前。因此,字符串“Zoo”在字符串“ariary”之前。根据编码进行比较还意味着大写字母和小写字母是不同的,因此字符串“FOO”和字符串“foo”不同。
在有些语言(入BASIC和标准Pascal)中,存储在不同长度的数组中的字符串彼此不相同。但是C-风格字符串是通过结尾的空值字符定义的,而不是由其所在数组的长度定义的。这意味着两个字符串即使被存储在长度不同的数组中,也可能是相同的:
    char big[80] = “Daffy”;    //5 letters plus \0
    char little[6] = “Daffy”;  //5 letters plus \0
顺便一说,虽然不能用关系运算符来比较字符串,但却可以用来比较字符,因为字符实际上是整型。因此下面的代码可以用来显示字母表中的字符,至少对于ASCII字符集和Unicode字符集来说是有效的:
for(ch = ‘a’ ch <+ ‘z’;ch++)
    cout << ch;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
	using namespace std;
	char word[5]="?ate";
	for(char ch = 'a';strcmp(word,"mate");ch++)
	{
		cout << word << endl;
		word[0]=ch;
	}
	cout << "After loop ends,word is "<<word<<endl;
	return 0;
}
检测相等或排列顺序:
可以使用strcmp()来测试C-风格字符串是否相等(排列顺序)。如果str1和str2相等,则下面的表达式为true:
strcmp(str1,str2) == 0
如果str1和str2不相等,则下面两个表达式都为true:
strcmp(str1,str2) != 0
strcmp(str1,str2)
如果str1在str2前面,则下面的表达式为true:
strcmp(str1,str2) < 0
如果str1在str2后面,则下面的表达式为true:
strcmp(str1,str2) > 01
2
3
4
5
6
7
8
9
10
11
12
13
14
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;
}