我有一个包含非ASCII字符的字符串,例如std::string word ("żółć");
或std::string word ("łyżwy");
我需要将其正确转换为const char *
才能调用system(my_String_As_A_Const_Char_Pointer);
我在Linux上工作。
我该怎么做?
答案 0 :(得分:4)
您可以使用std::string::c_str
成员函数。它将返回一个const char *
,可以在接受该类型参数的函数中使用。这是一个例子:
int main(int, char*[]) {
std::string word("żółć");
const char* x = word.c_str();
std::cout << x;
}
here是一个现实的例子。
答案 1 :(得分:1)
通过这些转换,唯一需要关心的是将宽字符与普通字符混合(这种情况非常糟糕)。您正在使用std:字符串,因此c_str()可以用于提取const char *以传递给其他库调用。