利用C语言实现:输入两个字符串,统计一个字符串在另一个字符串中出现的次数 。
2016-05-10 13:09
796 查看
输入两个字符串,统计一个字符串在另一个字符串中出现的次数
例如,asdfgasfgasf,as,则输出3编程环境为codeblocks,编译器是GUN-GCC,操作系统是win7-64位
分析:此代码主要运用了一个算法,是字符串匹配的朴素模式匹配算法。看懂算法之后再来读代码就没有什么压力了。
代码如下:#include <stdio.h>#include <stdlib.h>int main(){ char S[100],T[20]; char ch1,ch2; printf("请输入主字符串:\n"); ch1=getchar(); int i=0; while(ch1!='\n') { S[i]=ch1; i++; ch1=getchar(); } printf("请输入要筛选的字符串:\n"); ch2=getchar(); int j=0; while(ch2!='\n') { T[j]=ch2; j++; ch2=getchar(); } int m,n;//m为S的下标,n为T的下标 m=0; n=0; int num=0;//num用于记录选定单词出现的次数 while(m<=i&&n<=j) { if(S[m]==T
) { m++; n++; } else { m=m-n+1; n=0; } if(n==j) { num++; } } if(m==i+1) { printf("出现的次数是%d",num); }}来源:心倾城的网易博客
欢迎分享本文,转载请保留出处!
例如,asdfgasfgasf,as,则输出3编程环境为codeblocks,编译器是GUN-GCC,操作系统是win7-64位
分析:此代码主要运用了一个算法,是字符串匹配的朴素模式匹配算法。看懂算法之后再来读代码就没有什么压力了。
代码如下:#include <stdio.h>#include <stdlib.h>int main(){ char S[100],T[20]; char ch1,ch2; printf("请输入主字符串:\n"); ch1=getchar(); int i=0; while(ch1!='\n') { S[i]=ch1; i++; ch1=getchar(); } printf("请输入要筛选的字符串:\n"); ch2=getchar(); int j=0; while(ch2!='\n') { T[j]=ch2; j++; ch2=getchar(); } int m,n;//m为S的下标,n为T的下标 m=0; n=0; int num=0;//num用于记录选定单词出现的次数 while(m<=i&&n<=j) { if(S[m]==T
) { m++; n++; } else { m=m-n+1; n=0; } if(n==j) { num++; } } if(m==i+1) { printf("出现的次数是%d",num); }}来源:心倾城的网易博客
欢迎分享本文,转载请保留出处!
相关文章推荐
- C++奇数魔方阵
- c# c++ 自动接口工具
- C++第五次上机实验----求和
- 常用排序算法的C语言实现
- SQLite的C++类,同时支持ANSI 和UNICODE编码
- C++类构造函数与汇编、this
- 二叉查找树的实现(c++)
- stdlib.h
- c++ 作用域
- C++泛型笔记
- C++模板与泛型编程基础
- C++分割字符串和trim
- Introduction to C++ Programming in UE4——UE4官方文档翻译与理解(一)
- c语言64位打印方法
- C++注释规范
- C语言中的assert
- vc++初学
- <<Effective C++>>读书笔记4: 设计与声明
- C++
- C++使用OLE高速读写EXCEL的源码