这可能吗?我得到奇怪的错误信息,当我把char用作类型:C++:如何使字符数组的比较函数?
inline bool operator==(const char *str1, const char *str2){
// ...
}
错误消息:error C2803: 'operator ==' must have at least one formal parameter of class type
...我不明白的。
我想如果我能直接比较的东西,如:
const char *str1 = "something";
const char *str2 = "something else";
const char str3[] = "lol"; // not sure if this is same as above
,然后比较:
if(str1 == str2){
// ...
}
等
,但我也希望它一起工作:
char *str = new char[100];
和:
char *str = (char *)malloc(100);
我假设每一个字符数组我用这种方式在NULL字符就结束了,所以检查应该是可能的,但我知道它是不安全等等。我只是想知道这是否是可能的要做什么,以及如何。
是否有任何理由不能使用,strncmp,strnlen,strncat等字符串函数? –
pstrjds
2011-01-12 15:51:16
@ pstrjds:其实这些都在``,``中,包含`std :: basic_string <>`模板和`std :: string` typedef。 –
sbi
2011-01-12 16:14:10
良好的通话,我的坏,我实际上提供了一个链接到我的答案cstring,只是匆忙打字:) – pstrjds 2011-01-12 16:16:16