A. 查找子串 函数实现c++
时间: 2024-05-01 18:17:15 浏览: 37
下面是一个简单的实现示例:
```c
#include <stdio.h>
#include <string.h>
int findSubString(char str[], char substr[]) {
int i, j, k;
int len1 = strlen(str);
int len2 = strlen(substr);
for (i = 0; i <= len1 - len2; i++) {
for (j = i, k = 0; k < len2 && str[j] == substr[k]; j++, k++);
if (k == len2) {
return i;
}
}
return -1;
}
int main() {
char str[] = "hello world";
char substr[] = "world";
int index = findSubString(str, substr);
if (index == -1) {
printf("Substring not found.\n");
} else {
printf("Substring found at index %d.\n", index);
}
return 0;
}
```
在这个实现中,我们使用了两个循环来遍历主字符串和子字符串。在内部循环中,我们逐个比较字符,直到找到不匹配的字符或子字符串的末尾。如果子字符串匹配,则返回它在主字符串中的索引。如果找不到子字符串,则返回 -1。
这个实现并不是最优的,因为它在每个位置都进行了完整的子字符串比较,即使部分匹配已经失败。但是,它是一个简单的实现,可以用作基础学习和理解。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)