天之道

享受编程的乐趣。
posts - 118, comments - 7, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

统计子字符串出现次数

Posted on 2012-08-12 16:05 hoshelly 阅读(1593) 评论(0)  编辑 收藏 引用 所属分类: Programming
编写一个函数totsubstrnum(char *str, char *substr) ,它的功能是:统计子字符串substr在字符串str中出现的次数。

思想:len2为子串的长度,设置变量 i =0, 利用strncmp函数将str+i 开始的len2个字符与子串substr进行比较,如果相等,则count加1,此时 i 加 len2,如果不等,则 i 加1,继续寻找。

代码测试通过:

#include<stdio.h>
#include<string.h>
int totsubstrnum(char *str, char *substr);
int main()
{
    char str[80],substr[80];
    printf("Input string: ");
    gets(str);
    printf("Input substring: ");
    gets(substr);
    printf("count = %d\n",totsubstrnum(str,substr));

    return 0;
}

int totsubstrnum(char *str, char *substr)
{
    int i=0,count=0,len1,len2;
    len1=strlen(str);
    len2=strlen(substr);
    while(i <= len1-len2)
    {
        if(strncmp(str+i,substr,len2) == 0)
        {
            count++;
            i +=len2;
        }
        else
            i++;
    }
    return (count);
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理