注:代码通过TDM-GCC4.9.2编译通过

原题:有"China","America","Australia","France","Germany"五个国名。设计一个程序使其按字母顺序进行排序并输出结果。

思路:应用传统的排序方法,将字符串保存在字符数组中进行交换,将使得程序变得复杂,难于编写检查。可以将其都保存在字符串指针数组中。排序时只要套用原来一维数组的排序方法,将两个字符串指针在指针数组中的顺序进行交换,程序就变得十分简单。

设计:编写2个自定义函数:void sort(char *name[])用于排序,void prins(char *put[])用于输出。在main()函数中对字符串进行赋值,并且依次调用两个自定义函数,完成设计。

代码

#include <stdio.h>
#include <stdlib.h>#define N 5 void sort(char *name[]) //排序
{int i,j;char *sp; //用于临时交换for(i = 0;i < N-1;i++) //利用选择排序法进行排序{for(j = i+1;j < N;j++){if(strcmp(name[i],name[j]) > 0) <span style="font-family: Arial, Helvetica, sans-serif;">//当name[i]>name[j]时进行交换来排序①</span>{sp = name[i];name[i] = name[i+1];name[i+1] = sp;}}}
}void prins(char *put[]) //输出
{int i;for(i = 0;i < N;i++)printf("%s ",put[i]); //不能写*put[i]②
}int main() {char *spa[] = {"China","America","Australia","France","Germany"};sort(spa);prins(spa);getch();return 0;
}

运行结果:America Australia China France Germany

解释:①strcmp(str1,str2)中,

当str1 > str2时,函数值 > 0;

当str1 = str2时,函数值 = 0;

当str1 < str2时,函数值 < 0;

②因为put[i]是一个字符串指针,字符串指针指向一个字符常量的地址,由printf()的函数原型可知这里不能用*put[i],否则会出错。

总结:要明确字符串指针的原理,通过构建指针数组来进行字符串指针直接的顺序互换,套用一维数组的排序方法就可以进行字符串指针的排序,达到目的。

【C语言】对5个国家的名称进行排序详细解析相关推荐

  1. java 国家名称排序_对5个国家的名称进行排序详细解析

    注:代码通过TDM-GCC4.9.2编译通过 原题:有"China","America","Australia","France& ...

  2. 超全医院化验项目名称及数值详细解析

    超全医院化验项目名称及数值详细解析 门诊常用化验正常值 项 目 正常值 静脉血 ALT (谷丙转氨酶) 0一4O IU/L AST (谷草转氨酶) 0一45 IU/L TP (总蛋白) 60一80 g ...

  3. Android根据语言适配货币符,ios – 使用NSLocale根据国家/地区代码或国家/地区名称获取货币符号...

    我想使用NSLocale显示基于国家名称或国家/地区代码的货币符号我有所有国家/地区名称列表.假设我选择了USA然后返回$Currency 代码: NSLocale *locale = [NSLoca ...

  4. C语言学习笔记——输入五个国家的名称,按字母顺序排列输出

    建立一个指针数组,数组内的每一个指针分别指向每一个国家名的字符串.排序时,直接操作指针更加方便. 程序运行结果: /*Name: sortCountryNameAuthor: leeooDate: 1 ...

  5. 按照字母排序快速排序c语言,从键盘输入十个国家的名称,用选择排序法按字母顺序排列后输出...

    从键盘输入十个国家的名称,用选择排序法按字母顺序排列后输出 RE:songgenius: 从键盘输入十个国家的名称,用选择排序法按字母顺序排列后输出. #include #include #inclu ...

  6. R语言countrycode包转换国家名字和代码

    本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文. 不同的数据源使用不同的编码方案来表示国家(例如CoW或ISO).这带来了两个主要问题:(1)其中一些编码方案不够直观,(2)合并这些 ...

  7. R语言ggplot2进行特定国家或者地区的地图可视化、在地图上标出所有首府城市所在地(plot the locations of the capital cities)

    R语言ggplot2进行特定国家或者地区的地图可视化.在地图上标出所有首府城市所在地(plot the locations of the  capital cities) 目录

  8. R语言dplyr包mutate_at函数通过名称修改指定数据列的内容(使用统一的函数)实战

    R语言dplyr包mutate_at函数通过名称修改指定数据列的内容(使用统一的函数)实战 目录 R语言dplyr包mutate_at函数通过名称修改指

  9. Go语言逆向技术:恢复函数名称算法

    摘要:在对程序做安全审计.漏洞检测时,通常都需要对程序做逆向分析,本文在没有符号表的情况下,提出了一种恢复函数名称的算法,方便对go语言二进制文件进行逆向分析,提升分析效率. 本文分享自华为云社区&l ...

最新文章

  1. 2021全国高校计算机能力挑战赛(初赛)C语言试题四
  2. 程序设计实习MOOC / 程序设计与算法(三)第一周测验
  3. SAP标准培训课程C4C10学习笔记(三)第三单元
  4. 17种元器件PCB封装图鉴,美翻了
  5. 使用Jenkins来实现内部的持续集成流程(上)
  6. 华为Mate 30 Pro再爆猛料:更“大”更高级了
  7. java----Servlet的生命周期
  8. RabbitMQ工作模式Publish/Subscribe发布订阅,test测试代码
  9. mysql的bht_BHT
  10. 求解出能被5整除的正整数的乘积_事业单位数量关系:巧用“整除”求解数量关系...
  11. 半导体物理复习总结(四)——半导体导电性
  12. 手把手教你 Charles 的使用「部分逆向的解决方法」
  13. shopnc 设置mysql_shopnc 手机网站配置
  14. 生存或毁灭? 国内DIY现状大型调查分析
  15. 交换机:简述对交换机工作原理的认识
  16. 【Tensorflow教程笔记】常用模块 tf.function :图执行模式
  17. QT命令行编译时出现'mingw32-make'不是内部或外部命令,也不是可运行的程序或批处理文件
  18. 智慧书-永恒的处世经典格言:241-280
  19. Spring Boot 整合dubbo与zookeeper实现不同项目之间数据通过服务的传递
  20. Python+谷歌浏览器--电商秒杀器Selenium自动化爬取

热门文章

  1. Android系统音量调节策略学习总结
  2. 学习笔记---高等数学前置知识---数列、排列组合、解不等式
  3. kerberos机制
  4. 微信公众号开发中,获取用户资料的两种方式
  5. 怎样搜索计算机文档,怎么样快速搜索电脑文件 Windows系统秒搜电脑文件
  6. 碰壁会反弹的小球的实现
  7. 谈谈个人10几年来的一些经历感悟
  8. Universal USB Installer – 免光驱将U盘打造成Windows、Linux系统安装盘
  9. 【科普】USDT的三种链类型(Omni、ERC20、TRC20)
  10. openzipkin/brave初步了解