在字符串中搜索单词并返回与向量数对应的数字。 C ++

时间:2012-07-30 14:56:45

标签: c++

有什么想法吗?
(完成)我想在我的字符串中搜索特定的单词
(已完成)如果找到该词 (任何想法)我想输出矢量的数量,它就是其中的单词。

我这里有字符串模块[MODULENO + 1] = {“”,“数学”,“科学”,“法语”,“英语”};我在这个字符串中搜索一个单词..我找到那个单词..我想要的是输出正在的数字...让我说我正在搜索英语..我发现那个单词...现在我想要输出((模块英语在向量4中))

提前谢谢

2 个答案:

答案 0 :(得分:1)

我将此代码从接受的答案复制到您的其他问题:

bool checkValidTitle(string modules[], string word_to_check)
{
  for (int i = 1; i <= MODULENO; ++i)
    if (modules[i] == word_to_check)
       return true;
  return false;
}

如果您想要数字索引而不是布尔值,请更改函数返回类型和return语句:

int getModuleNo(string modules[], string word_to_check)
{
  for (int i = 1; i <= MODULENO; ++i)
    if (modules[i] == word_to_check)
       return i;
  return -1; // some magic value to indicate "not found"
}

使用此功能的一种可能方法是:

string word = "English";
int index = getModuleNo(modules, word);
std::cout << "Module " << word << " is number " << index << '\n';

答案 1 :(得分:0)

我想您应该使用 std :: find 来查找元素,而不是 std :: distance 来计算元素的索引。