题目:输入两个字符串,判断一个是否为另一个字符串的子串。
#include<stdio.h>
#include<string.h>
int main()
{
char str[100],a[100],temp[100];
int len1,len2,loc,i,j,num = 0;
printf("Please input a long string:\n");
scanf("%[^\n]",str);
getchar(); //存储\n
printf("Please input a short string:\n");
scanf("%[^\n]",a);
len1 = strlen(str);
len2 = strlen(a);
for(i = 0; i <= len1; i++)
{
if(str[i] == a[0]) //判断头一个字符是否相同
{
loc = i;
for(j = loc; j < (loc + len2); j++)
{
temp[j - loc] = str[j]; //将之后和子串长度相同的字符存入temp中
}
temp[j - loc] = '\0'; //将字符串结束标志赋予字符数组
if(strcmp(temp,a) == 0) //比较和子串是否相同
{
printf("YES\n");
num++;
break;
}
}
if(str[i] == '\0' && num == 0) //表示没有相同的子串
printf("NO\n");
}
}