【发布时间】:2011-05-11 14:24:27
【问题描述】:
void Foo::bar(const std::string& foobar) {
// ...
const char* foobar2 = (char*)foobar;
// ...
}
这不起作用,我在编译期间收到有关无效转换的错误。
有没有其他方法可以将std::string 转换为const char*?
【问题讨论】:
-
@GMan:有很多原因,主要原因是调用 C API 中的函数?
-
@Gman 因为我需要将 foobar 变量传递给 UDT 的 inet_pton 函数,该函数只接受 char* 类型的变量。
-
@GMan,许多函数仍然需要 (char*),它在 C++ 中大部分是可以避免的,但不是完全可以避免的。
-
@Andre @Aaron:我很少这样做。你真的认为初学者知道做某事的最佳方法吗?他真的想要
const char*,还是char*?他应该使用&foobar[0],还是std::vector<char>?如果他asked the goal and not the step,我们可以更好地回答这个问题。 @Richard:我看到一个需要const char*和void*,在任何地方都没有char*。在这种情况下,正如怀疑的那样,您只需要const char*,因此需要c_str,而不是char*。 (@And @Aar:哦,看看那个......) -
@GMan:“我希望不要因为未能编写我应该编写的代码而被解雇。有什么想法吗?”。问目标,而不是步骤;-p(你是对的,当然)。
标签: c++