2020-10-23

#include <stdio.h>
#define SIZE 81
char *stringIn(char *str1, char *str2);

int main(void)

    char string1[SIZE];
    char string2[SIZE];
    char *p;

    printf ("输入一个字符串:\n");
    gets(string1);

    while (*string1 != 'q')
    {
        printf("输入要查找的字符串:\n");
        gets(string2);
        p = stringIn(string1, string2);
        
        if (p)
        {
            printf("找到字符串:\n");
            puts(p);
        }
        else
            printf("未找到字符串。\n");

        printf ("\n输入一个字符串:\n");
        gets(string1);
    } // endof while

    printf("程序结束\n");

    return 0;
} // endof main


char *stringIn(char *str1, char *str2)
{
    char *p1 = str1;
    char *p2 = str2;
    int n = 0;
    if ('\0'==*str1 || '\0'==*str2)
        return NULL;

    while (1)
    {
        ++n;
        printf("--%d--\n",n);
        if (*str1 == *str2) // 如果str1的字符与str2字符相同
        {
            ++str2;
            if ('\0' == *str2) // 判断str2是否结束
                return p1;
            ++str1;
            if ('\0' == *str1) // 若str1结束,str2未结束,则返回空指针
                return NULL;
        } // endof if
        else
        {
            if ('\0' == *++str1)
                return NULL;
            p1 = str1;
            str2 = p2;
        } // endof else
        
    } // endof while
} // endof stringIn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值