strstr声明:
char *strstr(const char *haystack, const char *needle);
我的功能定义:
hostinfo_t *extract_host_from_url(const char *url) {
/* ... */
char *scheme_pos = strstr(url, "://");
/* ... */
}
我如何使用
void rewrite_url(string &url) {
/* ... */
hostinfo_t * hostinfo = extract_host_from_url(url.c_str());
/* ... */
}
错误信息:
错误:从'const char *'无效转换为'char *'[-fpermissive]
char * scheme_pos = strstr(url,“://”);
哪里出错?
答案 0 :(得分:9)
strstr
中给出的<cstring>
的C ++声明是overloaded
const char* strstr( const char* str, const char* target );
char* strstr( char* str, const char* target );
使用您的参数集,您将调用第一个函数,这就是返回类型为const char*
的原因。