题目:编写一个程序,计算一个字符串中指定子串出现的次数。

程序分析:这个程序中,我们使用两个字符串 TP,其中 T 是母串,P 是子串。我们要计算子串 P 在母串 T 中出现的次数。

实例

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
    int i, j, k, TLen, PLen, count = 0;
    char T[50], P[10];

    printf("请输入两个字符串,以回车隔开,母串在前,子串在后:\n");
    gets(T);
    gets(P);

    TLen = strlen(T);
    PLen = strlen(P);

    for (i = 0; i <= TLen - PLen; i++)
    {
        for (j = 0, k = i; j < PLen && P[j] == T[k]; j++, k++)
            ;

        if (j == PLen)
            count++;
    }

    printf("%d\n", count);

    return 0;
}

在这个程序中,我们首先声明了一些变量,包括 ijkTLenPLencount。然后,我们使用 gets() 函数分别从用户输入获取母串 T 和子串 P

接下来,我们使用 strlen() 函数获取母串和子串的长度,分别存储在变量 TLenPLen 中。

然后,我们使用两个嵌套的循环遍历母串 T 的每个可能的起始位置,并逐个比较子串 P 和母串 T 对应位置的字符。如果子串完全匹配,则将计数器 count 加一。

最后,我们打印出子串出现的次数。

运行程序,输入示例中的字符串,输出结果为:

请输入两个字符串,以回车隔开,母串在前,子串在后:
abca
a
2

这表示子串 "a" 在母串 "abca" 中出现了 2 次。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题