字符串搜索问题,解题思路与c代码
时间: 2023-12-08 21:05:42 浏览: 55
字符串搜索问题是指在一个字符串中查找指定的子串是否存在,并返回其出现的位置。解决这个问题的一种常用方法是使用暴力匹配算法,它的思路是从主串的第一个字符开始依次与子串的每一个字符比较,如果匹配成功,则继续比较下一个字符,直到子串中的所有字符都匹配成功,则返回在主串中的位置。如果匹配失败,则从主串的下一个字符开始重新匹配。
以下是一个使用暴力匹配算法的 C 代码实现:
```c
#include <stdio.h>
#include <string.h>
int search(char *str, char *substr)
{
int i, j;
int len1 = strlen(str);
int len2 = strlen(substr);
for (i = 0; i <= len1 - len2; i++) {
for (j = 0; j < len2; j++) {
if (str[i+j] != substr[j])
break;
}
if (j == len2)
return i;
}
return -1;
}
int main()
{
char str[100];
char substr[100];
printf("请输入主串:");
scanf("%s", str);
printf("请输入子串:");
scanf("%s", substr);
int pos = search(str, substr);
if (pos != -1)
printf("子串在主串中的位置是:%d\n", pos);
else
printf("未找到子串!\n");
return 0;
}
```
该程序先输入主串和子串,然后调用 `search` 函数进行匹配,最后输出子串在主串中的位置。如果未找到子串,则输出相应的提示。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)