如何将std :: basic_string类型转换为char类型的数组?

时间:2012-10-19 16:06:32

标签: c++ string type-conversion

运行此代码时出现以下错误:

syslog(LOG_ERR | LOG_USER, "%s",errorString);
  

无法将'const string {aka const std :: basic_string}'转换为'const char *'以获取>参数'2'到'void syslog(int,const char *,...)'inServer.cpp / PeCounter
  第478行C / C ++问题

我正在守护程序,并且当使用cout输出到stdio时,errorString值打印得很好,但是在使用syslog调用时它不会打印。

以任何方式将std :: basic_string(char)变为'const char'的形式。

2 个答案:

答案 0 :(得分:8)

我发现std::basic_string有一个项目访问方法c_str(),似乎可以解决编译问题。

以下是包含更多信息的网站:http://en.cppreference.com/w/cpp/string/basic_string

答案 1 :(得分:4)

c_str()data()成员函数提供指向包含字符串的char_type数组的第一个元素的指针。只要字符串对象本身保持有效且不变,它就是有效的(但要注意可能导致重新分配的操作可能使指针无效 - 最好不要存储它)。