strstr功能与2015

时间:2016-01-04 07:28:40

标签: c++ string function visual-studio-2015

所以,我必须介绍一些名字(它并不重要),并计算其中有多少名字我可以找到子字符串' ana'。我不允许使用char作为名称,我需要使用字符串。我编写的代码尽可能简单,但我的strstr函数不起作用。

#include <iostream>
#include <string>
#include<stdio.h>


using namespace std;

void main()
{
    string name;
    string ana;
    int ok = 0;
    int nr = 0;
    ana = "ana";
    cout << "if you want to stop entering names introduce 1 after the last name, else introduce 0.";
    while (ok == 0)
    {
        cout << "Name here: " << flush;
        getline(cin, name);
        if (strstr(name, ana) != 0)
            nr++;
        cin >> ok;
    }
    cout << "The number of names that contain 'ana' is: " << nr;
}
你能帮我个忙吗?错误是:&#34;严重性代码描述项目文件行抑制状态 错误C2665&#39; strstr&#39;:2个重载中没有一个可以转换所有参数类型T1E1 e:\ uni \ an ii \ lf \ t1e1 \ t1e1 \ e1.cpp 20&#34;

2 个答案:

答案 0 :(得分:8)

strstr适用于C字符串,而非std::string

改为使用std::string::find

而不是

  if (strstr(name, ana) != 0)
        nr++;

使用

  if ( name.find(ana) != std::string::npos )
     nr++;

答案 1 :(得分:0)

否则,您可以包含包含cstring函数的头文件strstr。在.cpp文件中添加以下代码。

#include <cstring>

cppreference.com的更多详情。