所以,我必须介绍一些名字(它并不重要),并计算其中有多少名字我可以找到子字符串' 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;
答案 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)