开发者社区> 问答> 正文

c中怎么实现查看两个字符串的匹配情况,返回能够匹配的字符的个数

比如,一个字符串是w_angqmab,,,另一个字符串是w+bangemx,,我想编写一个函数,,让它返回后一个字符串与前一个字符串得到匹配字符的个数,,,,我该怎么编写函数啊,,求大神们指点!!!!万分感谢!!!急急急急~~~~

展开
收起
a123456678 2016-03-23 14:10:05 1787 0
1 条回答
写回答
取消 提交回答
  • 排序后再比较计数。
    用C#演示一下,C的处理方式类似。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml.Linq;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void BubbleSort(char[] a)
            { 
                ...
            }
    
            static int CalcMatchCount(string s1, string s2)
            {
                char[] a1 = s1.ToCharArray();
                char[] a2 = s2.ToCharArray();
                BubbleSort(a1);
                BubbleSort(a2);
                // DEBUG
                Console.WriteLine(new string(a1));
                Console.WriteLine(new string(a2));
    
                int c = 0;
                for (int i1 = 0, i2 = 0; (i1 < a1.Length) && (i2 < a2.Length); )
                {
                    switch (Math.Sign( a1[i1].CompareTo(a2[i2])))
                    {
                        case -1:
                            i1++;
                            break;
                        case 0:
                            c++;
                            i1++;
                            i2++;
                            break;
                        case 1:
                            i2++;
                            break;
                    }
    
                }
                return c;
            }
    
            static void Main(string[] args)
            {
                string s1 = "w_angqmab";
                string s2 = "w+bangemx";
                Console.WriteLine(CalcMatchCount(s1, s2));
                Console.ReadLine();
            }
        }
    }

    结果

    _aabgmnqw
    +abegmnwx
    6

    2019-07-17 19:10:55
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载