C语言从键盘输入由两个不同字符组成的字符串t和另一长字符串s,求字符串t在字符串s中出现的次数。比如在基因序列对比有应用,ATGU 在ATGUUGTAATGUATGU中出现了3次

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;
}