C语言从键盘输入由两个不同字符组成的字符串t和另一长字符串s,求字符串t在字符串s中出现的次数。比如在基因序列对比有应用,ATGU 在ATGUUGTAATGUATGU中出现了3次
问题描述:
从键盘输入由两个不同字符组成的字符串t和另一长字符串s,求字符串t在字符串s中出现的次数。比如在基因序列对比有应用,ATGU 在ATGUUGTAATGUATGU中出现了3次
答
供参考:
#include <stdio.h>
int count(char* str, char* substr);
int main()
{
char str[80], substr[80];
gets(substr);
gets(str);
printf("%d\n", count(str, substr));
return 0;
}
int count(char* str, char* substr)
{
int i, j, k, num = 0;
for (i = 0; str[i] != '\0'; i++)
for (j = i, k = 0; substr[k] == str[j]; k++, j++)
if (substr[k + 1] == '\0') { num++; break; }
return num;
}