追梦少年_66 发表于 2017-11-19 23:37

菜鸟学C第13题:编写函数IND,让它判断一个字符串是否为另一个字符串的子串的功能,...

#include<stdio.h>
#include<stdlib.h>
int IND(const char *str, const char *substr) {
        if (str == NULL || substr == NULL) {
                return 0;
        }

        int length1 = strlen(str);
        int length2 = strlen(substr);
        for (int i = 0; i < length1; i++) {
                int flag = 1;
                for (int j = 0; j < length2; j++) {
                        if (str != substr || str == '\0') {
                                flag = 0;
                                break;
                        }
                }
                if (flag) {
                        return i+1;
                }
        }
        return 0;

}


void main() {

        printf("%d", IND("12ab5","abc"));
        getchar();
}

追梦少年_66 发表于 2017-11-19 23:38

/*
/*13.        编写函数IND,让它判断一个字符串是否为另一个字符串的子串的功能,若是则返回第一次出现的起始位置,否则返回0。
/*/

hn2zzzz1996 发表于 2017-11-20 10:15

建议楼主去看看KMP算法来解决问题,暴力是不可取的。

追梦少年_66 发表于 2017-11-20 10:28

hn2zzzz1996 发表于 2017-11-20 10:15
建议楼主去看看KMP算法来解决问题,暴力是不可取的。

我马上去看看

追梦少年_66 发表于 2017-11-20 19:00

hn2zzzz1996 发表于 2017-11-20 10:15
建议楼主去看看KMP算法来解决问题,暴力是不可取的。

https://www.52pojie.cn/thread-665652-1-1.html

StAr蓝月 发表于 2017-11-24 13:41

字符串用楼上说的 算法 比较好,不过你这个 适合用来搜索特征码 哈哈哈哈哈

追梦少年_66 发表于 2017-11-24 13:43

StAr蓝月 发表于 2017-11-24 13:41
字符串用楼上说的 算法 比较好,不过你这个 适合用来搜索特征码 哈哈哈哈哈

https://www.52pojie.cn/thread-665652-1-1.html
页: [1]
查看完整版本: 菜鸟学C第13题:编写函数IND,让它判断一个字符串是否为另一个字符串的子串的功能,...