【问题描述】输入字符串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;
}