題目:輸入兩個字符串,判斷一個是否為另一個字符串的子串。
#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"); } }
|
新聞熱點
疑難解答