【发布时间】:2018-10-25 05:10:47
【问题描述】:
如果我有一个 char* 是另一个函数的输出,并且我知道它是 10 个已知单词之一,那么找到它的最佳方法是什么?
通过std::string(char*) 将char* 转换为string,然后使用string.compare()?
char* c = "hi";
string s = std::string(c);
if (s.compare("hello") )
这是最好的方法吗?我不能直接写:
char* c ="hi";
if(c == "hello")
【问题讨论】:
-
c 或 c++,请选择一个。 c 没有
std::string而在c++ 中,你为什么首先使用char*? (应该是const char*btw) -
std::string已定义operator==。 -
顺便说一句,要比较两个
char*,因为标题要求您实际上确实使用==,但您不想比较char*s,您想比较两个@987654337指向的字符串@ -
我认为人们不会阅读有关某种特定语言的任何内容,而是会跑到 SO 并期望在 2 分钟内了解该特定语言的基础知识。正确的答案应该是“阅读一些关于 C 或 C++ 的书”。
-
问题因重复而关闭,但时间在流逝,还有另一种选择:从 C++17 开始,您可以使用 std::string_view 在 C 字符串 (char*) 上构造“视图”和 C++ std::string 然后你可以调用 std::string_view.compare 方法。简单而且相当快。