答案: 在C++中,我们可以使用string类和vector类来实现在一个字符串中获取多个in,并将它们返回给vector的功能。
首先,我们需要使用string类的find函数来查找字符串中的子串。find函数会返回子串在字符串中的位置,如果找不到则返回string::npos。
然后,我们可以使用一个循环来重复查找字符串中的子串。每次找到子串后,我们可以将其位置保存到一个vector中。
下面是一个示例代码:
#include <iostream>
#include <string>
#include <vector>
std::vector<size_t> findOccurrences(const std::string& str, const std::string& subStr) {
std::vector<size_t> occurrences;
size_t pos = 0;
while ((pos = str.find(subStr, pos)) != std::string::npos) {
occurrences.push_back(pos);
pos += subStr.length();
}
return occurrences;
}
int main() {
std::string str = "This is a string containing multiple 'in' occurrences";
std::string subStr = "in";
std::vector<size_t> occurrences = findOccurrences(str, subStr);
for (size_t i = 0; i < occurrences.size(); ++i) {
std::cout << "Occurrence " << i + 1 << " found at position " << occurrences[i] << std::endl;
}
return 0;
}
在上面的代码中,我们定义了一个名为findOccurrences的函数,它接受两个参数:一个是要搜索的字符串str,另一个是要查找的子串subStr。函数返回一个vector,其中包含了所有子串在字符串中的位置。
在主函数中,我们定义了一个示例字符串str和要查找的子串subStr。然后,我们调用findOccurrences函数来获取所有子串的位置,并将结果保存到occurrences向量中。最后,我们使用循环打印出每个子串在字符串中的位置。
这个功能在实际开发中非常常见,例如在文本处理、日志分析、字符串匹配等场景中都会用到。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云