c语言寻找公共字符串,C语言查找两个字符串中的最大公共子串
#include
#include
#include
char *commonstring(char *str1,char *str2)
{
int i,j;
char *longstr,*shortstr;
char *substr;
//判断是否为空
if(*str1 == NULL || *str2 == NULL)
{
return NULL;
}
//判断字符串的长度
if(strlen(str1) <= strlen(str2))
{
longstr = str2;
shortstr = str1;
}
else
{
longstr = str1;
shortstr = str2;
}
//查看较长的字符串是否完全包含较短的字符串
if(strstr(longstr,shortstr) != NULL)
{
return shortstr;
}
//在堆上动态分配内存放最大公共字符串,
substr = (char *)malloc(sizeof(shortstr)+1);
for(i=strlen(shortstr)-1;i>0;i--)
{
for(j = 0; j<=(strlen(shortstr)-i); j++)
{
memcpy(substr, &shortstr[j], i);
substr[i] = '\0';
if(strstr(longstr,substr) != NULL)
{
return substr;
}
}
}
return NULL;
}
int main()
{
char *str1 = (char *)malloc(256);
char *str2 = (char *)malloc(256);
char *common = NULL;
gets(str1);
gets(str2);
common = commonstring(str1,str2);
printf("the longest common strng is: %s\n",common);
return 0;
}
标签:子串,str2,str1,longstr,C语言,char,查找,NULL,shortstr
来源: https://blog.csdn.net/zhouliang_dream/article/details/100656487
c语言寻找公共字符串,C语言查找两个字符串中的最大公共子串相关推荐
- 【算法刷题日记之本手篇】汽水瓶与查找两个字符串a,b中的最长公共子串
⭐️前面的话⭐️ 本篇文章介绍来自牛客试题广场的两道题题解,分别为[汽水瓶]和[查找两个字符串a,b中的最长公共子串],展示语言java. 小贴士:本专栏所有题目来自牛客->面试刷题必用工具
- 查找两个字符串a,b中的最长公共子串
查找两个字符串a,b中的最长公共子串 文章目录 查找两个字符串a,b中的最长公共子串 一.题目描述 二.代码 一.题目描述 题目描述: 查找两个字符串a,b中的最长公共子串.若有多个,输出在较短串中最 ...
- 华为机试HJ65:查找两个字符串a,b中的最长公共子串
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 查找两个字符串a,b中的最长公共子串.若有多个,输出在较短串中最先出现的那个. 注: ...
- HJ65 查找两个字符串a,b中的最长公共子串
描述 查找两个字符串a,b中的最长公共子串.若有多个,输出在较短串中最先出现的那个. 注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串.请和"子序列"的概念分开 ...
- 【牛客网华为机试】HJ65 查找两个字符串a,b中的最长公共子串
题目 描述 查找两个字符串a,b中的最长公共子串.若有多个,输出在较短串中最先出现的那个. 注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串.请和"子序列"的概 ...
- c语言字符串连接作用,C语言 不使用strcat函数实现连接两个字符串功能代码
字符串连接函数: 字符串连接就是将一个字符串连接到另一个字符串的末尾,使其组合成一个新的字符串,在字符串处理函数中,strcat 函数具有字符串连接功能.下面是用C语言实现不使用是strcat 函数 ...
- 查找两个字符串中相同字符串_使两个字符串相同的最低成本
查找两个字符串中相同字符串 Problem statement: 问题陈述: Given two strings string1 and string2 find the minimum cost r ...
- LeetCode简单题之仅执行一次字符串交换能否使两个字符串相等
题目 给你长度相等的两个字符串 s1 和 s2 .一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符. 如果对 其中一个字符串 执行 最多一次字符串 ...
- LeetCode 1790. 仅执行一次字符串交换能否使两个字符串相等
文章目录 1. 题目 2. 解题 1. 题目 给你长度相等的两个字符串 s1 和 s2 . 一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符. 如 ...
- 算法019:字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。
题目:字符串轮转.给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串).示例1:输入:s1 = "waterb ...
最新文章
- 使用Oracle创建图书馆数据库(book reader lib loan表)
- 十二、Redis五大数据类型之四Hash
- ZeroClipboard 和JqueryUI_dialog 完美组合!
- log file sync
- A wizard’s guide to Adversarial Autoencoders: Part 3, Disentanglement of style and content.
- Dokcer安装Redis
- 127.0.0.1/dokuwiki/install.php,DokuWiki安装+集成markdown编辑器editor.md
- jquery解析java对象数组_Javascript / jQuery初学者:将对象推送到数组
- 【02】koala编译中文出错(已放弃不用)
- 51单片机的LED的位定义(通俗易懂)
- [工具资源] 《HelloGitHub》第 08 期
- python利用tensorflow识别图形_表情识别与性别识别 实时识别模型附源代码 基于python的tensorflow与keras...
- mysql 取首字母_MySQL中获取拼音首字母的方法
- 实验一高频小信号调谐放大器
- 基因组Masked作用
- Pano React Native SDK 来了!快速实现移动端音视频和白板
- linux休眠唤醒后qt无法启动,Ubuntu 18.04 休眠后无法唤醒的解决办法
- 【正点原子STM32连载】第五十三章 DSP测试实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
- Object.keys()、Object.values()、Object.entries()的用法
- yolov7 姿态识别-人体骨架-实时检测
热门文章
- CSS-float详解,深入理解clear:both[转+部分原创]
- angular $location服务获取url
- mount的api使用笔记
- 注意cache同时过期问题
- 笑话(12) 内裤都磨破了
- python用多线程可以快几倍_用了python多进程,我跑程序花费的时间缩短了4倍
- 微课|中学生可以这样学Python(例11.2):tkinter猜数游戏(1)
- Python函数嵌套定义的洪荒之力
- java中的关键字 保留字_java中的标识符、关键字、保留字
- python 实现对地图的点击_python使用folium库绘制地图点击框