// 11-6
// 查找子串
#include <stdio.h>
char *search (char *s, char *t);
int main(int argc, char *argv[])
{
char s[30], t[20];
char *result;
printf("请输入两个字符串:\n");
scanf("%s%s", s, t);
result = search(s,t);
printf("%s\n", result);
return 0;
}
char *search (char *s, char *t)
{
int i = 0;
int j = 0;
int k = 0;
int flag = 0;
char *result;
while (s[i]!='\0')
{
k = 0; // 子串首位
if (t[k]==s[i])
{
flag = 1; // 如果找到子串,flag=1
j = i+1;
k++;
while (t[k]!='\0')
{
if (t[k]!=s[j]) // 与子串不相同
{
flag = 0;
break;
}
k++;
j++;
}
}
if (flag)
{
break;
}
i++;
}
if (flag)
{
result = s+i;
printf("起始位置是: %d\n", i);
}
else
{
result = NULL;
printf("起始位置是: -1\n");
}
return result;
}
版权声明:本文为kirisame9原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。