求子串函数strstr()的函数
    在C语言中,字符串是用字符数组来表示的,而函数strstr()则是用来查一个字符串中是否具有另一个字符串的函数,其全称为“string search”,也就是字符串查。
    本文将从以下几个方面来介绍函数strstr()的相关知识。
    一、函数原型
    函数strstr()的原型如下:
    ```c
char *strstr(const char *str1, const char *str2);
```
    其中,str1为被查的字符串,str2为要查的字符串,返回值为在str1中第一次出现str2的位置指针,如果不到则返回NULL。
    二、函数功能
    函数strstr()的功能是查字符串中是否包含另一个字符串,如果包含则返回第一次出现位置的指针,不包含则返回NULL。具体用法如下:
    ```c
char str1[] = "hello world";
char str2[] = "world";
char *p;
p = strstr(str1, str2);
if(p)
    printf("在%s中,第一次出现%s的位置为%d\n", str1, str2, p-str1+1);
else
    printf("在%s中,没有到%s\n", str1, str2);
```
    输出结果为:
    ```c
在hello world中,第一次出现world的位置为7
```
    三、函数实现原理
    函数strstr()的实现原理是在字符串str1中循环查字符串str2,直到到第一次出现的位置或遍历完整个字符串。
    具体实现方式为,先到字符串str2的第一个字符,然后从该字符开始依次比较str1和str2中的字符,如果相等则一直比较下去,一旦不相等则退出比较,继续在字符串str1中查下
一个与str2中第一个字符相同的字符,再进行上述比较操作,直到到第一次出现的位置或遍历完整个字符串。
    四、函数使用注意事项
    1. 函数strstr()区分大小写,即strcmp()与strcasecmp()的区别。
    2. 函数strstr()在到第一次出现的位置之后并不会终止查,而是会继续查后面是否还有同一字符串,因此需要使用break等方法来终止查。
    3. 函数strstr()的返回值是一个指针类型,需要进行类型转换才能进行比较。
    4. 函数strstr()只能查单个字符的子串,无法查多个字符的子串。
    五、函数应用举例
    可以通过书写一个函数,实现在一个字符串中查指定子串,返回该子串在字符串中的位置。函数实现如下:
    ```c
#include <stdio.h>
#include <string.h>
    int find_substr(char *str, char *substr) {
strcmp可以比较单个字符吗    char *p;
    p = strstr(str, substr);
    if (p == NULL) {
        return -1;
    } else {
        return p-str;
    }
}
    int main() {
    char str[] = "hello world";
    char substr[] = "world";
    int pos = find_substr(str, substr);
    printf("在%s中,第一次出现%s的位置为%d\n", str, substr, pos);
    return 0;
}
```
    输出结果为:
    ```c
在hello world中,第一次出现world的位置为6
```
    以上就是关于求子串函数strstr()的函数的全部内容,希望本文能对您的学习和工作有所帮助。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。