不能用strstr函数
时间: 2024-09-16 21:03:59 浏览: 35
如果你不能使用`strstr()`函数,你可以考虑手动遍历主字符串来查找子字符串的位置。例如,你可以使用一个循环和`strlen()`函数来比较每个部分。下面是一个简单的例子,展示了如何在C语言中实现这个功能:
```c
#include <stdio.h>
#include <string.h>
int find_substring(char main_str[], char substr[]) {
size_t len1 = strlen(substr), pos = 0;
while ((pos = main_str.find(substr, pos)) != std::string::npos) { // 注意这里假设main_str是一个std::string实例
printf("Substring '%s' found starting at position %ld.\n", substr, pos);
pos += len1; // 移动搜索起点,继续查找下一个位置
}
if (pos == std::string::npos)
printf("Substring not found.\n");
return 0;
}
int main() {
char main_str[] = "Hello, World! This is a test. Test again.";
char substr[] = "test";
find_substring(main_str, substr);
return 0;
}
```
在这个示例中,`find_substring`函数通过不断从当前查找位置开始搜索,直到没找到子串为止。
阅读全文