给定一个文本,在该文本中查找并定位任意给定字符串。用c++实现bf算法
时间: 2024-09-25 20:11:31 浏览: 16
在C++中,使用BF(Brute Force)算法查找给定文本中特定字符串的位置可以遍历整个文本,逐字符对比。下面是一个简单的基本实现:
```cpp
#include <string>
#include <vector>
// 定义函数在文本中查找给定字符串
size_t findSubstring(const std::string& text, const std::string& substring) {
size_t index = 0;
while ((index = text.find(substring, index)) != std::string::npos) {
// 当找到匹配时,返回其索引
std::cout << "找到 '" << substring << "' 的位置: " << index << std::endl;
// 更新搜索起始位置以便于下一次查找
index += substring.length();
}
if (index == std::string::npos)
return -1; // 如果没找到,返回-1表示不存在
return index;
}
int main() {
std::string inputText = "Hello, this is a sample text to demonstrate the brute force string search algorithm.";
std::string searchString = "brute force";
size_t position = findSubstring(inputText, searchString);
if (position != -1)
std::cout << "字符串 '" << searchString << "' 在文本中的第一个位置是: " << position << std::endl;
else
std::cout << "字符串 '" << searchString << "' 未在文本中找到" << std::endl;
return 0;
}