string.h中函数声明如下:

strstr  (const char *s1, const char *s2);

注释:

在源字符串s1中查找字符串s2第一次出现的位置,若找到则返回第一次出现的地址,否则返回NULL.

测试代码:

#include<stdio.h>
#include<string.h>
char * mystrstr(const char * ,const char *);
char * mystrstr(const char * src,const char * find){
    if(NULL==src || NULL == find)
        return NULL;
                                                                                                                             
    char * cp =  (char *)src;
    char * s1, * s2;
                                                                                                                             
    while(*cp){
        s1 = cp;
        s2 = (char *) find;
        while(*s1 && *s2 && (*s1 == *s2))
            s1++,s2++;
        if(!*s2)
            return cp;
        cp ++; 
    }
                                                                                                                             
    return NULL;
}
int main(){
    char * src = "hello, china and hello,world";
    char * find = ",";
    char * re = mystrstr(src,find);
    if(re)
        printf("%s\n",re);
    else
        printf("no find\n");   
    return 0;
}

char* mystrstr(constchar * ,constchar *);


在如下网址中的string.h头文件中看到没有变量名的函数声明。

http://math.ytu.edu.cn/c/function/head-string.html

第一次看到这种函数声明方法没有变量名,如

char* mystrstr(const char * ,const char *);只指明了变量类型。


参考网址:

http://www.jbox.dk/sanos/source/lib/string.c.html