筆試題:在一個字串中查詢子字串的個數
阿新 • • 發佈:2018-12-30
題目:在一個字串中查詢子字串的個數。
要求:兩個字串之間以空格隔開,前一個為字串,後一個為要查詢的子字串。結果輸出字串中包含的子字串的個數。
例如:輸入: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;
}