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; 
} 

Ich begann gerade C++ Programmierung zu lernen, und ich weiß nicht, warum ich in dieser ZeileWarum habe ich einen Fehler durch Verwendung von strchr() in C++ bekommen?

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

Fehler bekam Aber wenn ich es so zu codieren versucht, wäre es sehr gut geführt.

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

Ich weiß, es eine dumme Frage, aber ich weiß wirklich nicht, warum .. sorry ..

+0

versuchen 'if (! Strchr (a.c_str(), 'a'))' statt – DimChtz

+5

Verwendung 'a.find() 'statt' strchr' –

+2

Hast du die Dokumentation zu 'strchr' durchgesehen? – user2357112

Antwort

3

Die Bibliotheksfunktion strchr ist für die Verwendung mit C-Strings, nicht der C++ string Typ.

+0

Vielen Dank !!! Sorry für meine blöde Frage nochmal .. – user299560

2

Wenn std::string verwenden, die die Äquivalente für strchr ist find:

#include <iostream> 
#include <string> 

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