4.5.4 比较以空字符结尾的字符串
strcmp()函数可以比较我们通过参数(char*类型的指针)指定的两个以空字符结尾的字符串。该函数返回一个int类型的值,根据第一个参数指向的字符串小于、等于还是大于第二个参数指向的字符串,返回值将会为-1、0或1。举例如下:
- char* str1("Jill");
- char* str2("Jacko");
- char* comp[] = { "less than ", "equal to ", "greater than "};
- cout << str1 << " is " << comp[strcmp
(str1, str2) + 1] << str2 << '.' << endl;
这个代码片段的功能是比较字符串str1与str2。comp数组包含我们可能要在输出中使用的第三个字符串,并用strcmp()函数的返回值来从这个数组中进行选择。通过向strcmp()的返回值加1,可以方便地得到0、1或2,因此可以用它来从comp中选择适当的段落。
比较字符串的工作通过比较对应字符的字符代码来完成。第一对不同的字符确定了第一个字符串是小于还是大于第二个字符串。如果两个字符串含有相同数目的字符而且对应的字符相同,这两个字符串就是相同的。当然,输出是:
- Jill is greater than Jacko.
wstrcmp()函数是对应于strcmp()的宽字符串版本。