例如,我们有两个字符串:
string s = "cat";
string s1 = "dog";
编写以下方法是否正确?
int a = strcmp(s, s1);
或者什么是正确的形式?
答案 0 :(得分:11)
C ++的std::string
可以直接比较,所以你可以写一些。
if (s == s1)
cout << "the strings are equal" << endl;
else if (s < s1)
cout << "the first string is smaller" << endl;
else
...
但如果你真的需要整数值,你可以使用the .compare
method。
int a = s.compare(s1);
答案 1 :(得分:1)
为了完整起见,尽管您应该尽可能使用内置字符串函数,但是在常见情况下您经常需要将C样式的空终止字符串与C ++字符串进行比较。例如,您将不断遇到系统调用返回指向C字符串的指针的情况。
您可以选择将C字符串转换为C ++字符串并进行比较
string s1 = "cat";
string s2 = "dog";
const char *s3 = "lion";
if (s1 == string(s3))
cout << "equal" << endl;
else
cout << "not equal" << endl;
或将C ++的底层C字符串与另一个C字符串进行比较:
a = strcmp(s1.c_str(), s3);