C语言在一个字符串中查找第一个子串,并输出第一个子串的下标,不使用string函数
时间: 2023-06-17 09:06:52 浏览: 94
可以通过暴力枚举的方式在原字符串中查找子串,具体步骤如下:
1. 输入原字符串和子串。
2. 使用双重循环遍历原字符串和子串,从原字符串的第一个字符开始,依次将子串与原字符串的字符进行比较。
3. 如果子串与原字符串的字符相同,则继续比较下一个字符,直到子串的所有字符都比较完毕。
4. 如果子串全部比较完毕,说明找到了第一个子串,输出其下标。
5. 如果没有找到子串,则输出未找到。
下面是示例代码:
```c
#include<stdio.h>
#include<string.h>
int main()
{
char str[100], substr[100];
int i, j, flag, len1, len2;
printf("请输入原字符串:");
scanf("%s", str);
printf("请输入子串:");
scanf("%s", substr);
len1 = strlen(str);
len2 = strlen(substr);
flag = 0;
for(i = 0; i <= len1 - len2; i++)
{
for(j = 0; j < len2; j++)
{
if(str[i+j] != substr[j])
{
break;
}
}
if(j == len2)
{
flag = 1;
printf("第一个子串的下标为:%d\n", i);
break;
}
}
if(flag == 0)
{
printf("未找到子串!\n");
}
return 0;
}
```
阅读全文