题目:输入两个字符串,判断一个是否为另一个字符串的子串。
#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"); } }
新闻热点
疑难解答