1. 程式人生 > >筆試題:在一個字串中查詢子字串的個數

筆試題:在一個字串中查詢子字串的個數

題目:在一個字串中查詢子字串的個數。
要求:兩個字串之間以空格隔開,前一個為字串,後一個為要查詢的子字串。結果輸出字串中包含的子字串的個數。
例如:輸入:abcdssdfabc abc
輸出:2
先把測試用例寫出來:
1:輸入:abdsdjkflsdjkabdsdjk abd 輸出:2
2:輸入:a abc 輸出:0
3:輸入:&%jskdl&%sdfjkl *&% 輸出:2

#include<stdio.h>
#include<string.h>
int find(char *arr, char
*temp, int len_a, int len_t) { //檢查異常輸入 if(len_a<=0||len_t<=0||len_a<=len_t) { return 0; } int count=0; int flag=0; for(int i=0;i<=len_a-len_t;i++) { flag=1; for(int j=0;j<len_t;j++) { if(arr[i+j]==temp[j]) { flag=1
; } else { flag=0; break; } } if(flag==1) { count++; } } return count; } int main() { char arr[1024];//字串 char temp[1024];//要查詢的子字串 scanf("%s %s",&arr,&temp);//錄入字串
int len_a=strlen(arr);//計算字串長度 int len_t=strlen(temp);//計算字串長度 int count=find(arr,temp,len_a,len_t); printf("%d",count); getchar(); return 0; }