求两个字符串的最大公共子串【培训第三天】
来源:互联网 发布:mac 系统恢复 编辑:程序博客网 时间:2024/04/29 21:24
今天不提了,比昨天好一些,可是还是跟不上老师的节奏,我感觉要急死了。一晚上只做出了一道作业题,而且还是从百度看到之后自己琢磨的,注释已经加全了,想看的朋友也可以拷贝过去看一下。
早上8:15分到了楼下,去吃了个早饭8:33到教室。晚了三分钟,班主任就给我记了一次迟到,还说一共只有三次机会,妈蛋!好不爽,我以为就几分钟没事的,昨天班主任都那么晚才来。
唉!
#include<stdio.h>int main(){ //定义两个字符串 char str1[100] = { 0}; char str2[100] = { 0}; //显示的提示信息 printf("请输入要比较的两个字符串,以回车结束 \n"); //接收输入的字符串 gets(str1); gets(str2); int max = 0; //用来存放最长公共子串 int num = 0; //用来存放当前的公共子串长度 //定义p1,p2,分别存放str1和str2的当前比较位置 char *p1 = str1; char *p2 = str2; //定义start,存放最长公共子串的起始位置 char *start; while (*p1 != '\0') //字符串str1开始循环,p1不为‘\0’,说明字符串 str1没有到末尾 { p2 = str2; //存放字符串str2的起始位置 while (*p2 != '\0') //字符串str2开始循环和str1进行比较 { char * begin = p1; //begin是str1当前的比较位置 char * begin2 = p2; //begin2是str2当前的比较位置 num = 0; //初始化 while ((*begin != '\0') && (*begin2 != '\0')) //可以多次循环比较 { if (*begin == *begin2) //若两个数相同,数值依次递加 { num++; begin++; begin2++; } else { break; } } //若新比较出的字串更长,则替换max值和start内容 if (num > max) { max = num; start = p1; //start放置最大字符串的首地址 } p2++; //字符串str2向后移动一位 } p1++; //字符串str1向后移动一位 } //打印最大的公共子串 while(max--) { printf("最大的公共子串为:%c",*start++); } printf("\n");}
0 0
- 求两个字符串的最大公共子串【培训第三天】
- LCS求两个字符串的最大公共子串
- 求两个字符串的最大公共子串
- 求两个字符串的最大公共子串
- 求两个字符串的最大公共子串
- C++实现求两个字符串的最大公共子串
- 求两个字符串的最大公共子串
- 两个字符串的最大公共子串
- 两个字符串的最大公共子串
- 求两个字符串的公共子串
- java实现字符串匹配问题之求两个字符串的最大公共子串
- 求两个字符串的公共最大子字符串,如asdfsdkgf,kllsdkabc的最大子串为sdk
- 求两个字符串的最大子串
- 两个字符串的最大公共子字符串
- 两个字符串的最大公共子字符串
- 求两个字符串的最大公共子串 ,不区分大小写
- 动态规划算法求两个字符串的最大公共子串
- 面试题之求两个字符串的最大公共子串
- [SSH_easyUI]细节3:dataGrid区域实现增删改查
- 使用Opencv
- Unreal Engine 4 AddOnScreenDebugMessage使用注意
- Java-----13、输入、输出
- 小小感悟
- 求两个字符串的最大公共子串【培训第三天】
- 6.12
- C/C++中函数返回局部变量的问题
- hdu 4069 舞蹈链
- 归并算法
- Linux常用命令(五)
- 6.13
- UML序列图总结
- C++第四章习题