strcmp 函数
正确地比较字符串,应该使用库函数 strcmp。该函数以两个 C 字符串作为形参,并返回一个整数,表示两个字符串相互比较的结果。其原型如下:
int strcmp(char *string1, char *string2)
表示函数将釆用两个字符串作为形参(char* 是 C 字符串的类型)并返回一个整数结果。结果的值是根据以下约定设置的:
1、如果两个字符串的每个字符都相等,则结果为 0。
2、如果 string1 以字母顺序排在 string2 之前,则结果为负数。
3、如果 string1 以字母顺序排在 string2 之后,则结果为正值。
下面是一段参考代码:
#include <iostream> #include <cstring> using namespace std; int main() { const int LENGTH = 40; char firststring[LENGTH], secondstring[LENGTH]; // Read two strings cout << "Enter a string: "; cin.getline(firststring, LENGTH); cout << "Enter another string:"; cin.getline(secondstring, LENGTH); if (strcmp(firststring, secondstring) == 0) cout << "You entered the same string twice. \n"; else cout << "The strings are not the same.\n"; return 0; }
首先是头文件,使用字符串的函数必须加上头文件#include<iostream>。接着定义一个常数 LENGTJH表示长度,然后就是定义两个字符串,
同时要注意的是字符串的输入应该用cin.getline,这样才能让空格等字符也能输入到字符串中。输入完字符串后就直接用strcmp
函数将两个字符串进行对比。当比较字符串时,函数 strcmp 是区分大小写的。如果用户在此程序中输入 "Dog" 和 "dog",则程序将报告它们不一样。
一些编译器提供执行不区分大小写比较的非标准版本的 strcmp。除了字符的大小写被忽略之外,这些函数与 strcmp —样工作。