#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语言查找两个字符串中的最大公共子串相关推荐

  1. 【算法刷题日记之本手篇】汽水瓶与查找两个字符串a,b中的最长公共子串

    ⭐️前面的话⭐️ 本篇文章介绍来自牛客试题广场的两道题题解,分别为[汽水瓶]和[查找两个字符串a,b中的最长公共子串],展示语言java. 小贴士:本专栏所有题目来自牛客->面试刷题必用工具

  2. 查找两个字符串a,b中的最长公共子串

    查找两个字符串a,b中的最长公共子串 文章目录 查找两个字符串a,b中的最长公共子串 一.题目描述 二.代码 一.题目描述 题目描述: 查找两个字符串a,b中的最长公共子串.若有多个,输出在较短串中最 ...

  3. 华为机试HJ65:查找两个字符串a,b中的最长公共子串

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 查找两个字符串a,b中的最长公共子串.若有多个,输出在较短串中最先出现的那个. 注: ...

  4. HJ65 查找两个字符串a,b中的最长公共子串

    描述 查找两个字符串a,b中的最长公共子串.若有多个,输出在较短串中最先出现的那个. 注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串.请和"子序列"的概念分开 ...

  5. 【牛客网华为机试】HJ65 查找两个字符串a,b中的最长公共子串

    题目 描述 查找两个字符串a,b中的最长公共子串.若有多个,输出在较短串中最先出现的那个. 注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串.请和"子序列"的概 ...

  6. c语言字符串连接作用,C语言 不使用strcat函数实现连接两个字符串功能代码

    字符串连接函数: 字符串连接就是将一个字符串连接到另一个字符串的末尾,使其组合成一个新的字符串,在字符串处理函数中,strcat  函数具有字符串连接功能.下面是用C语言实现不使用是strcat 函数 ...

  7. 查找两个字符串中相同字符串_使两个字符串相同的最低成本

    查找两个字符串中相同字符串 Problem statement: 问题陈述: Given two strings string1 and string2 find the minimum cost r ...

  8. LeetCode简单题之仅执行一次字符串交换能否使两个字符串相等

    题目 给你长度相等的两个字符串 s1 和 s2 .一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符. 如果对 其中一个字符串 执行 最多一次字符串 ...

  9. LeetCode 1790. 仅执行一次字符串交换能否使两个字符串相等

    文章目录 1. 题目 2. 解题 1. 题目 给你长度相等的两个字符串 s1 和 s2 . 一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符. 如 ...

  10. 算法019:字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。

    题目:字符串轮转.给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串).示例1:输入:s1 = "waterb ...

最新文章

  1. 使用Oracle创建图书馆数据库(book reader lib loan表)
  2. 十二、Redis五大数据类型之四Hash
  3. ZeroClipboard 和JqueryUI_dialog 完美组合!
  4. log file sync
  5. A wizard’s guide to Adversarial Autoencoders: Part 3, Disentanglement of style and content.
  6. Dokcer安装Redis
  7. 127.0.0.1/dokuwiki/install.php,DokuWiki安装+集成markdown编辑器editor.md
  8. jquery解析java对象数组_Javascript / jQuery初学者:将对象推送到数组
  9. 【02】koala编译中文出错(已放弃不用)
  10. 51单片机的LED的位定义(通俗易懂)
  11. [工具资源] 《HelloGitHub》第 08 期
  12. python利用tensorflow识别图形_表情识别与性别识别 实时识别模型附源代码 基于python的tensorflow与keras...
  13. mysql 取首字母_MySQL中获取拼音首字母的方法
  14. 实验一高频小信号调谐放大器
  15. 基因组Masked作用
  16. Pano React Native SDK 来了!快速实现移动端音视频和白板
  17. linux休眠唤醒后qt无法启动,Ubuntu 18.04 休眠后无法唤醒的解决办法
  18. 【正点原子STM32连载】第五十三章 DSP测试实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  19. Object.keys()、Object.values()、Object.entries()的用法
  20. yolov7 姿态识别-人体骨架-实时检测

热门文章

  1. CSS-float详解,深入理解clear:both[转+部分原创]
  2. angular $location服务获取url
  3. mount的api使用笔记
  4. 注意cache同时过期问题
  5. 笑话(12) 内裤都磨破了
  6. python用多线程可以快几倍_用了python多进程,我跑程序花费的时间缩短了4倍
  7. 微课|中学生可以这样学Python(例11.2):tkinter猜数游戏(1)
  8. Python函数嵌套定义的洪荒之力
  9. java中的关键字 保留字_java中的标识符、关键字、保留字
  10. python 实现对地图的点击_python使用folium库绘制地图点击框