C语言:分别输入两段字符串,并找出其中的最大公共字符串
来源:互联网 发布:mac上好的音乐播放器 编辑:程序博客网 时间:2024/04/29 02:31
面试中遇到的,后来看到了有大神的解答,有的还是不大明白,就把自己的贴出来:
#include<stdio.h>#include<string.h>void m_p_str(char *str_1,char *str_2){ int i,j,k; int str_1_len = strlen(str_1); int str_2_len = strlen(str_2); int index = 0;//记录最大公共字符下标开始的位置int num = 0;//记录最大公共的个数 for(i=0;i<str_1_len;i++) { for(j=0;j<str_2_len;j++) { if(str_1[i]==str_2[j])//如果有相同的元素,则同时都往后面移动 { for(k=1;str_1[i+k]==str_2[j+k]&&str_2[j+k]!='\0'&&str_1[i+k]!='\0';k++) { if(k>num)//比较看是不是最长的哪一个 { num=k;//如果是,记录其最大公共的个数 index = i;//并记录其下标开始的位置 } } } } } if(num==0)//即最大公共的个数为0 { printf("这两个字符串中无公共字符!\n"); } else { printf("这两个字符串最大公共字符串是:\t"); for(i=0;i<=num;i++) { printf("%c",str_1[index+i]); }printf("\n"); }printf("公共字符从第: %d 个开始\n",index+1);printf("公共字符最多一共有: %d 个\n",num); printf("检索完毕!\n"); }void main(){ char str_1[100]; char str_2[100];printf("请输入字符串一:\t");gets(str_1);printf("请输入字符串二:\t");gets(str_2); m_p_str(str_2,str_1); }
结果是:
欢迎讨论,共同学习--------一个码农的成长历程
0 0
- C语言:分别输入两段字符串,并找出其中的最大公共字符串
- 10月7日 c语言编程 输入三个字符串,要求找出其中最大者
- c语言:有3个字符串,找出其中最大者
- 输入一行字符串,找出其中出现长度最长的字符串
- c语言---输入一个字符串,删除其中的某一个字符
- 找出两个字符串中最大的公共子字符串
- C语言数组实现最大公共字符串
- c语言:查找两个字符串的最大公共子串
- C语言找出字符串中的特定的字符,并输出
- C 对输入的10个字符串(可不等长)分别排序并分别输出
- c语言初学--计算字符串中数字的最大长度并提取 以及输入两个子串 提取分别以这为开头和结尾的字符串
- 找出两个字符串的最大公共子串
- 找出两个字符串的最大公共子串
- 找出两个字符串的最大公共子串
- 常见C语言面试题之五:两个字符串的最大公共子字符串
- 输入一行字符串,找出其中的相同且长度最长的字符串P227
- 输入一行字符串,找出其中出现的相同且长度最长的字符串
- 输入一行字符串,找出其中出现的相同且长度最长的字符串
- 【转】C# WinForm 程序单实例运行,再次运行时激活前一个实例
- java17.IO操作------使用字节流读写数据
- 数据结构记录--散列法实验
- LeetCode116 Populating Next Right Pointers in Each Node
- 得到去除同一张表符合多个条件之后的记录
- C语言:分别输入两段字符串,并找出其中的最大公共字符串
- 数据结构记录--基于二叉排序树的查找
- fastdfs nginx 配置片段
- Hibernate配置详细解释
- 结构体【struct】
- 区间内生产不等概率随机数
- 零基础入门学习Python(26):生成器
- 常用牛人主页链接(计算机视觉、模式识别、机器学习相关方向,陆续更新。。。。)
- spring配置hibernate的sessionFactory的几种方法GOOD