2016-08-01 13 views
-4
#include <iostream> 
#include <string> 
#include <cstring> 
using namespace std; 

int main(){ 
    string a="asdasd"; 
    if(!strchr(a,'a')) cout<<"yes"; 
    return 0; 
} 

난 그냥 C++ 프로그래밍을 배우기 시작하고 나는이 줄C++에서 strchr()을 사용하여 오류가 발생하는 이유는 무엇입니까?

if(!strchr(a,'a')) cout<<"yes"; 

에 오류가 발생했습니다 왜 몰라하지만 이런 식으로 코딩을 시도하는 경우, 그것은 아주 잘 실행됩니다.

if(!strchr("asdasd",'a')) cout<<"yes"; 

나는 그것이 바보 같은 질문입니다 알고 있지만 난 정말 왜 .. 죄송 모른다 ..

+0

하는 경우 '시도 (! strchr과 (a.c_str(),'A '))'대신 – DimChtz

+5

사용'a.find() '대신'strchr' –

+2

'strchr'에 대한 문서를 확인 했습니까? – user2357112

답변

3

라이브러리 기능 strchr는 C 스타일의 문자열이 아니라 C++ string 유형으로 사용할 수 있습니다.

+0

정말 고마워요! 내 바보 같은 질문에 다시 미안해 .. – user299560

2

std::string를 사용하여, strchr의 가장 가까운 동등 find입니다 :

#include <iostream> 
#include <string> 

int main(){ 
    std::string a="asdasd"; 
    if(a.find('a') != std::string::npos) std::cout<<"yes"; 
}