输入字符串1与子串2,在字符串1中查找子串,找不到,输出“No substring 子串",找到了,输出子串在字符串1中出现的下标。

【问题描述】输入字符串1与子串2,在字符串1中查找子串,找不到,输出“No substring 子串",找到了,输出子串在字符串1中出现的下标。
【输入形式】字符串1与子串2
【输出形式】子串出现的位置(下标),或无子串的信息
【样例输入】

Input string:It took 13 horses, 123 hours, 123 kilometers,1234person

Input substring:123

【样例输出】

Substring 123 position:19 30 45

【样例输入】

Input string:substing is abc

Input substring:Ab

【样例输出】

No substring Ab

【样例说明】下划线上是运行时输入的文字,其他是提示信息

供参考:

#include <stdio.h>
int main()
{
    char str[80], substr[80];
    int i, j, k, num = 0;
    printf("Input string:");
    gets(str);
    printf("Input substring:");
    gets(substr);
    for (i = 0; str[i] != '\0'; i++){
        for (j = i, k = 0; substr[k] == str[j]; k++, j++)
            if (substr[k + 1] == '\0') {
                if (num == 0)
                    printf("Substring %s position:%d", substr, i);
                else
                    printf(" %d", i);
                num++;
                break; 
            }
    }
    if (!num)
        printf("No substring %s", substr);
    return 0;
}