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

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

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

无法将'const string '转换为'const char *'for> argument'2'到'void syslog(int,const char *,...)'inServer.cpp / PeCounter line 478 C / C问题

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

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

回答(2)

2 years ago

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

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

2 years ago

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