找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1357|回复: 2
打印 上一主题 下一主题
收起左侧

求两个字符串中相同的字符(不区分大小写)并排序缓存打印

[复制链接]
跳转到指定楼层
楼主
求两个字符串中相同的字符(不区分大小写)并缓存打印char *Get_str(const char *instr1, const char *instr2)  //返回值为椎区内存   instr1  为  输入第一个字符串   instr2  为输入第二个字符串
  1. {
  2.    if(instr1 == NULL || instr2 == NULL)
  3.   {
  4.     printf("input err.\n");
  5.     return NULL;
  6.   }
  7.   int i = 0, j = 0;
  8.   while(instr1[i])  //把字符串  instr1  字符全部转换为  小写
  9.   {
  10.      if(instr1[i] >= 'A' && instr1[i] <= 'Z')
  11.        instr1[i]   += 32;
  12.      i++;
  13.   }
  14.   while(instr2[j])  //把字符串  instr2  字符全部转换为  小写
  15.   {
  16.      if(instr2[j] >= 'A' && instr2[j] <= 'Z')
  17.        instr2[j]   += 32;
  18.      i++;
  19.   }


  20.    int flag = 1;   //设置一个标志  如果 判断  输出的字符串是否有相同的如果有  变为0
  21.    char   *str = (char *)malloc(sizeof(char)*26); //设置一个输出字符串
  22.    int k = 0, sum = 0;
  23.   for(i = 0; i < strlen(instr1); i++)
  24.   {
  25.      for(j = 0; j < strlen(instr2); j++)
  26.      {
  27.         if(instr1[i] == instr2[j])
  28.         {
  29.            flag = 1;
  30.           for(k = 0; k < m; k++)  // 循环  判断  是否 与str内的字符相同 若不同添加  相同  不添加
  31.           {
  32.             if(instr1[i] == str[m])
  33.             {  flag = 0; }
  34.           }
  35.           if(flag)  
  36.             {  str[m] = instr1[i];  m++; }
  37.         }
  38.      }   
  39.   }
复制代码

    char tmp;
   for(i = 0; i < m - 1; i++)   //快速排序
   {
       for(j = i + 1; j < m; j++)
       {
           if(str > str [j])  升序
            { tmp = str;   str  =  str[j]; str[j] = tmp;}
       }
   }

    printf(“%s\n", str);
   return str;
}

欢迎  参与讨论 批评

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:394504 发表于 2018-9-6 16:10 | 只看该作者
楼主 你的代码会出现一个bug吧  比如 str1 aaaaa 和 str2 ab  会打印出 aaaaa ,  如果是 str1 ab和 str2 aaaaa  会打印出 a
回复

使用道具 举报

板凳
ID:390775 发表于 2018-9-7 08:59 | 只看该作者
qingfengyu 发表于 2018-9-6 16:10
楼主 你的代码会出现一个bug吧  比如 str1 aaaaa 和 str2 ab  会打印出 aaaaa ,  如果是 str1 ab和 str2 aa ...


这一部分 是 对 字符串去重的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表