实验10 指针进阶 程序三

#include <stdio.h> 
#include <string.h>
char *search(char *s,char *t); 
int main()
{    
    char s[100],t[100],*p;
    gets(s);  //输入第一个字符串 
    gets(t);   //换行输入第二个字符串 
    p=search(s, t);   //调用函数 
    if(p!=NULL) 
        printf("%d\n",p-s);
    else
        printf("-1\n");
    return 0;
} 
char *search(char *s,char*t)  //定义函数 
{
    int i,j,k=0,S,T;
    char *p=NULL;
    S=strlen(s);
    T=strlen(t);
    for(i=0;i<S;i++)
    {
        j=i;          //如果不用j代替i的话,会导致下面是s[i]的改变 
        while(s[j]==t[k])
        {
            k++;
            j++;
        }
        if(k>=T)  //当k>=T的时候,(其实等于t的时候就该停止了)即结束循环,将是s[i]代表的子字符串的首字母的地址赋给p 
        {
            p=&s[i];
            return p;
        }
        k=0;//将k重新归零,进行下一次循环 
    }
    return p;
}

 

posted @ 2018-12-14 00:01  MichaelCecil  阅读(375)  评论(0编辑  收藏  举报