查找字符串中子字符串出现次数
来源:互联网 发布:中走丝hf上下异形编程 编辑:程序博客网 时间:2024/05/24 05:49
在学linux c过程中,遇到一个问题,就是查找一个长的的字符串中子字符串出现的次数。例如查找adbcabcabc中 abc 出现的次数。 自己写的时候遇到 了一些小问题,折腾了一下午写出来的程序都有瑕疵,在网上上找这个程序代码,没有发现一个正确的程序,都是有瑕疵的(可能大神们没时间解决这 样一个不起眼的程序吧)。 终于写出这个程序,很完美的解决了一些小bug,甚至可以测试一些很变态的例子,例如在 ababababba中查找 aba 出现的次数,在aaaaaaaa中查找aa出现的次数。 话不多说,上程序:
/***************************************************** File name:3.c Author: Tang Zhiqian Date:2017-07-27 15:42*****************************************************/#include <stdio.h>#include <string.h>int func(char *str_f, char *str_z);int main(){ char str_f[50]; char str_z[10]; scanf("%s",str_f); scanf("%s",str_z); printf("%d\n", func(str_f,str_z)); return 0;}int func(char *str_f, char *str_z){ int n = 0; int same_num; //判断父字符串中与子字符串“连续”相同的个数 int len_f = strlen(str_f); //测长度 int len_z = strlen(str_z); int i,j; for(i = 0; i < len_f; i++) //父字符串逐个往后推 { same_num = 0; for(j = 0; j < len_z; j++) //确定父字符串的字符后,子字符串从开头逐个往后推 { if(str_f[i + j] == str_z[j]) { same_num ++; //相同+1 } if(same_num == len_z) //子字符串循环完后判断与父字符串相同的个数是否等于子字符串的个数 { n++; } } } return n;}
好的!
来运行一下:
1. 先测试ababa中aba出现的次数(很明显2次);
果然是 2 次;
2.测试aaaaa中aa出现次数(很明显4次)
果然 4 次;
3.再来个普通的
完美!简直完美啊!
阅读全文
1 0
- 查找字符串中子字符串出现次数
- 编写函数查找字符串中子字符串出现的次数
- 查找一个字符串中子串出现的次数
- 字符串中子字符串重复出现的次数
- java统计字符串中子字符串出现次数
- java_字符串中子字符串出现的次数
- 计算字符串中子串出现的次数
- 计算字符串中子串出现的次数
- 计算字符串中子串出现的次数
- 求字符串中子串出现的次数
- 计算字符串中子串出现的次数
- 查找字符串出现次数
- 查找字符串出现次数
- java程序题:计算字符串中子字符串出现的次数
- 输入一个字符串,计算字符串中子串出现的次数
- 输入一个字符串,计算字符串中子串出现的次数
- 输入一个字符串,计算字符串中子串出现的次数
- 输入一个字符串,计算字符串中子串出现的次数
- elasticsearch 的java api
- (2017多校训练第二场)HDU
- C++封装DLL并调用
- hdu 2048 神、上帝以及老天爷
- 面向切面编程AOP的浅显理解(一)
- 查找字符串中子字符串出现次数
- 由前序遍历和中序遍历重建二叉树
- 同步异步 阻塞非阻塞
- [leetcode]127. Word Ladder
- 定一个目标吧
- HDU 1049 Climbing Worm
- 1097. Deduplication on a Linked List
- C语言——实例012 素数
- 深度卷积生成对抗网络--DCGAN