C语言实现查找两个字符串中唯一不同的字符

144 篇文章 ¥59.90 ¥99.00
本文介绍如何用C语言实现查找两个等长字符串中唯一不同的字符。通过遍历字符串并使用strlen函数,一旦找到不同字符即输出并结束程序。程序运行展示了正确找出不同字符的功能。

C语言实现查找两个字符串中唯一不同的字符

在进行字符串比较时,有时候需要找出两个字符串中唯一不同的字符。下面给出具体的C语言实现。

源码如下:

#include <stdio.h>
#include <string.h>

int main() {
   
   
    char str1
可以使用动态规划算法实现查找两个字符串中的最大公共子串。具体实现方法如下: 1. 定义一个二维数组dp,其中dp[i][j]表示以第一个字符串的第i个字符和第二个字符串的第j个字符结尾的最大公共子串的长度。 2. 初始化dp数组,将所有元素都赋值为0。 3. 遍历两个字符串,如果第一个字符串的第i个字符和第二个字符串的第j个字符相等,则dp[i][j] = dp[i-1][j-1] + 1,否则dp[i][j] = 0。 4. 在遍历的过程中,记录最大的dp[i][j]的值以及对应的i和j,即为最大公共子串的长度和结束位置。 5. 最后根据最大公共子串的长度和结束位置,可以得到最大公共子串的起始位置和内容。 下面是C语言实现代码: ```c #include <stdio.h> #include <string.h> void findMaxCommonSubstr(char* str1, char* str2) { int len1 = strlen(str1); int len2 = strlen(str2); int dp[len1+1][len2+1]; int maxLen = 0, endPos = 0; memset(dp, 0, sizeof(dp)); for(int i=1; i<=len1; i++) { for(int j=1; j<=len2; j++) { if(str1[i-1] == str2[j-1]) { dp[i][j] = dp[i-1][j-1] + 1; if(dp[i][j] > maxLen) { maxLen = dp[i][j]; endPos = i-1; } } else { dp[i][j] = 0; } } } if(maxLen == 0) { printf("No common substring found.\n"); } else { printf("The maximum common substring is \"%.*s\".\n", maxLen, str1+endPos-maxLen+1); } } int main() { char str1[] = "abcdefg"; char str2[] = "bcdehij"; findMaxCommonSubstr(str1, str2); return 0; } ``` 输出结果为: ``` The maximum common substring is "bcde". ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值