2016-08-01 36 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()、 ''))'代わり – 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"; 
} 
関連する問題