C语言设计函数locatesubstr
时间: 2024-02-19 07:27:29 浏览: 69
C语言标准函数库详解.pdf
函数名:locatesubstr
函数功能:在字符串中查找指定子串的出现位置
函数原型:int locatesubstr(char *str, char *substr)
函数参数:
- str:指向要查找的字符串的指针
- substr:指向要查找的子串的指针
函数返回值:返回子串在字符串中首次出现的位置,如果没有找到则返回-1。
函数实现:
```c
#include <stdio.h>
#include <string.h>
int locatesubstr(char *str, char *substr)
{
int i, j, k;
int len1 = strlen(str);
int len2 = strlen(substr);
for (i = 0; i <= len1 - len2; i++)
{
k = i;
for (j = 0; j < len2; j++)
{
if (substr[j] == str[k])
{
k++;
}
else
{
break;
}
}
if (j == len2)
{
return i;
}
}
return -1;
}
int main()
{
char str[] = "hello world";
char substr[] = "world";
int pos = locatesubstr(str, substr);
if (pos != -1)
{
printf("子串在字符串中首次出现的位置是:%d\n", pos);
}
else
{
printf("字符串中没有找到子串!\n");
}
return 0;
}
```
函数说明:
- 该函数使用双重循环,外层循环从字符串的第一个字符开始遍历,内层循环用于比较子串和字符串中的字符是否匹配。
- 如果匹配成功,则继续比较下一个字符,如果匹配失败,则跳出内层循环。
- 如果内层循环正常结束,则说明找到了子串,返回子串在字符串中首次出现的位置。
- 如果外层循环结束后仍未找到子串,则说明字符串中不存在该子串,返回-1。
阅读全文