2016-10-27 3 views
0

설명 : 않는 strstr의

선언 : 내 기능의
char *strstr(const char *haystack, const char *needle);strstr()에서 정상입니까?

정의 :

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()); 
    /* ... */ 
} 

오류 정보 :

error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
     char *scheme_pos = strstr(url, "://");

질문 : 일이 잘못 않는

? <cstring>에 주어진

+0

C를 쓰고 있습니까? 그리고 C 컴파일러를 사용하고 있습니까? –

+3

재생할 수 없습니다. [MCVE]를 게시 할 수 있습니다 –

+0

@Kerrek 컴파일러는 g ++ – CharlesLiuChina

답변

9

C++ strstr의 선언은, 인수 당신의 세트 overloaded

const char* strstr(const char* str, const char* target); 
     char* strstr(  char* str, const char* target); 

, 당신은 반환 형식이 const char* 이유 첫 번째 함수를 호출하는 것입니다.

+0

이것은 올바른 대답입니다.^_^ – CharlesLiuChina

+1

@CharlesLiuChina 그러면 받아 들여야합니다. –

관련 문제