方法一:统计相应字符的个数(用它们的ASCLL码统计)

首先建个字符表,即129个元素的数组,比如:a[129]。

(ASCLL码表从000开始,128以后的字符现在编译器大多不识别)

并把它初始化为0,当下面统计字符个数的时候,把与该字符的ASCLL码对应的数组a的元素加1,比如:检测到字符a,其ASCLL码值097,故,a[97]++

#include<stdio.h>
#include<string.h>
int main()
{int a[129]={};int i,p,q;char str1[20],str2[20];gets(str1);gets(str2);p=strlen(str1),q=strlen(str2);for(i=0;i<p;i++){a[(int)str1[i]]++;
//这里的强制类型转换不加也行,即为:a[str1[i]]++;}for(i=0;i<q;i++){a[(int)str2[i]]--;}for(i=0;i<129;i++){if(a[i]!=0)
{printf("%s and %s are not mutually sorted string.",str1,str2);break;}}if(i==129) printf("%s and %s are mutually sorted string.",str1,str2);return 0;
}

方法二:用字符串str1去遍历字符串str2,如果有相同的就碰撞,即将这两个字符都赋值为0。最后进行遍历,判断现在两个字符串的元素是否都为0,是的话就是重排串。

#include<stdio.h>
#include<string.h>
int main()
{char str1[20],str2[20];int i,j,p,q;gets(str1);gets(str2);p=strlen(str1);q=strlen(str2);printf("%s and %s ",str1,str2);
//下面比较p,q,即比较字符串的长度if(p!=q) {printf("are not mutually sorted string.");return 0;}else
//下面这个循环用str1遍历str2中是否有相同元素for(i=0;i<p;i++){for(j=0;j<q;j++){if(str1[i]==str2[j]) str1[i]=0,str2[j]=0;}}
//下面判断字符串str1是否所有元素为0
//这里也可以是str2,效果一样,因为在“对对碰”后,只有两种情况:
//是-两个串所有元素都为零;否-两个串中均存在非零字符for(i=0;i<p;i++)if(str1[i]!=0) {printf("are not mutually sorted string.");return 0;}printf("are mutually sorted string.");return 0;
}

方法三:将字符串按照ASCLL码大小进行排序,然后比较

(这个算法思路是对的,还有一点小问题,学习通半对)

#include<stdio.h>
#include<string.h>
int main()
{char str1[20],str2[20];int i,j,t,p,q,cnt,min;gets(str1);gets(str2);p=strlen(str1);q=strlen(str2);
//排序的方法有很多,我下面用的是选择排序,并且非必要不交换^-^for(i=0;i<p-1;i++)//挑选的次数 {t=str1[i],cnt=0,min=0;for(j=i+1;j<p;j++){if(t>str1[j]) t=str1[j],cnt++,min=j;}if(cnt!=0) t=str1[i],str1[i]=str1[min],str1[min]=t;}for(i=0;i<q-1;i++)//挑选的次数 {t=str2[i],cnt=0,min=0;for(j=i+1;j<q;j++){if(t>str2[j]) t=str2[j],cnt++,min=j;}if(cnt!=0) t=str2[i],str2[i]=str2[min],str2[min]=t;}if(strcmp(str1,str2)==0) printf("%s and %s are mutually sorted string.",str1,str2);else printf("%s and %s are not mutually sorted string.",str1,str2);return 0;
}

C语言下的重排串问题相关推荐

  1. c语言入门-5-字符串

    c语言入门-5-字符串 正文 1.字符串怎么用 方式一 方式二 2.字符串的长度 深度解析 1 字符串的特性 2 ==\0== 的含义 3 ascii码表 下一篇 正文 1.字符串怎么用 方式一 // ...

  2. python语言字符串定义_Python语言基础1-字符串

    本文主要向大家介绍了Python语言基础1-字符串,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 数字,字符串,列表,布尔,元组,字典,集合(小知识点) 变量名的命名规则? #1 ...

  3. c语言字符密码验证码,c语言下的学生管理系统(含密码加密和验证码).docx

    c语言下的学生管理系统(含密码加密和验证码).docx #include #include #include #include #include #define N 20void input();// ...

  4. C语言下,获取文件信息

    C语言下,如何获取文件的生成时间,日期和文件大小等文件信息. 1.标准库函数并未提供对应的实现,这个Linux上GCC中struct stat的资料 struct stat {dev_t st_dev ...

  5. c语言大作业 模拟泊松分布,C语言下泊松分布以及指数分布随机数生成器实现

    最近实验室的项目需要实现模拟文件访问序列,要求单位时间内的数据请求次数符合泊松分布,而两次请求见的时间间隔符合指数分布.没办法只好重新捡起已经丢掉多时的概率知识.于是也就有了这篇关于在C语言下符合泊松 ...

  6. c语言如何判断当前是 空字符,c语言如何判断字串中没有没有某个字元?

    c语言如何判断字串中没有没有某个字元?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语言如何判断字串中没有没有某个字 ...

  7. html 标准通用标记语言下,HTML超文本标记语言常用的一些标签

    在之前的学习中了解到了xml是可扩展型标记语言,所以html和xml有相似之处,html是可以在网络上传输的超文本标记语言,所以xml的所有要求对于html同样适用,单双标签,子标签,属性,之类的ht ...

  8. 解答03:Smith圆为什么能“上感下容 左串右并”?

    更多关注:微信公众号"硬件大熊" 传输线的阻抗需求有很多种,如50Ω.75Ω.90Ω.100Ω.120Ω等.归一化阻抗实际上是建立了一套"通杀"阻抗的方法,即虽 ...

  9. 指数分布c语言,C语言下泊松分布以及指数分布随机数生成器实现

    最近实验室的项目需要实现模拟文件访问序列,要求单位时间内的数据请求次数符合泊松分布,而两次请求见的时间间隔符合指数分布.没办法只好重新捡起已经丢掉多时的概率知识.于是也就有了这篇关于在C语言下符合泊松 ...

最新文章

  1. 在Eclipse下面安装spket
  2. android https 简书,关于Android http改为https
  3. 七大你可能不知道的 Chrome 使用技巧
  4. 电信申请固定ip_各个代理ip之间的关系
  5. java 方法 示例_Java扫描器具有示例的NextNextShort()方法
  6. ubuntu 安装java_Hadoop3.1.3安装教程_单机/伪分布式配置
  7. 【教程】一步一步教你如何自定义设置——博客园canvas/JS交互动画背景
  8. 黑马博客——详细步骤(四)项目功能的实现之数据分页
  9. pymol安装教程linux,PyMOL | Pymol绘图教程(一)
  10. windows 下 LITE IDE go lang 安装配置使用
  11. SOLIDWORDS API修改零部件属性全部保存
  12. python蓝屏代码_死机、卡顿、蓝屏,Python部分的老江湖告诉我的一些超等反常代码...
  13. 复杂网络作业二:第一题——Wikipedia vote网络的基本分析
  14. 借助Excel批量重命名图片、文档,以及处理文件名中的空格问题(适合新手小白)
  15. 批量将所有图片的宽度和高度调整为固定的像素数值
  16. Latex 图片/表格位置不正确
  17. 物联网与无线传感器网络期末考试复习资料(教材--刘伟荣,何云--电子工业出版社)
  18. niagara框架中串口的打开方式
  19. Qt4.7.3在dm6446平台上的移植经验与教训
  20. python实现打卡

热门文章

  1. c语言模拟计算机程序阶乘,C语言程序设计——快速入门与提高CAP-中国大学mooc-题库零氪...
  2. PowerShell 中的目录文件管理
  3. 反常积分最重要的函数之伽马函数
  4. 拥有资源的多少并不重要,如果不懂得利用,永远是不够的
  5. 用ubuntu的grpb2引导Remix OS或Phoenix OS
  6. Google结构化数据
  7. java sleep唤醒_详解Java中的线程让步yield()与线程休眠sleep()方法
  8. 傅里叶变换及低通滤波再反变换(C++opencv)
  9. 2021年登高架设考试技巧及登高架设考试试题
  10. Incorrect column count: expected 1, actual 5