为什么我在C ++中使用strchr()会出错?

时间:2016-08-01 15:30:50

标签: c++ string char strchr

#include <iostream>
#include <string>
#include <cstring>
using namespace std;

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

我刚刚开始学习C ++编程,我不知道为什么我在这行中出错了

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

但是,如果我尝试像这样编码,它会很好地运行。

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

我知道这是一个愚蠢的问题,但我真的不知道为什么......抱歉..

2 个答案:

答案 0 :(得分:3)

库函数strchr用于C风格的字符串,而不是C ++ string类型。

答案 1 :(得分: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";
}