【发布时间】:2020-03-22 11:05:30
【问题描述】:
在程序中编写并测试您自己的函数:
-
int function1 (const char * string1, const char * string2)按字典顺序比较两个字符串,返回 如果字符串相同,则为 0,如果 string1 早于 string2,则为 -1,如果 string1 晚于则 +1, 例如function1 ("cca" , "abcd")-> 1,function1 ("abcde", "b")-> -1 -
int function2 (const char * string)返回字符串中出现的唯一数字的数量, 例如function2 ("ab512af6kc1") -> 3.int main() { cout << cmp("abc","a") << endl; } int cmp(const char* string1, const char* string2) { for(int i = 0; i < len(string1); i++) { if (i == len(string1)) { return 0; } else if (string1 > string2) { return 1; } else if (string1 < string2) { return -1; } } }
它返回我 -1 但应该是 1,因为“abc”在字典中比“a”晚。
第二个练习呢?我不知道如何开始。
【问题讨论】:
-
你在比较指针,使用
strcmp -
我必须编写 OWN 函数而不是 strcmp...所以我不能使用它
-
你可以使用
std::string::compare,如果不能直接使用可以研究它的来源。 -
如果你重新阅读你的 C++ 书并意识到
string1和string2是指针,它们的比较在这里没有意义,那就更好了。
标签: c++ arrays pointers reference