2016-08-01 5 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++, и я не знаю, почему я получил ошибку в этой строкеПочему я получил ошибку, используя strchr() в C++?

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