C语言之函数调用18—多字符串排序

//字符串排序*****

/*

===============================================================

对任意个字符串升序排列!

===============================================================

*/

#include<stdio.h>

#include<string.h>

#define N 3          //控制排序数量

#define M 100     //控制单词长度

//排序功能函数

void PX(char s[N][M])

{

int i,j;

char temp[M];

for(i=0;i<N-1;i++)

for(j=i+1;j<N;j++)

if(strcmp(s[i],s[j])==1)

{

strcpy(temp,s[i]);

strcpy(s[i],s[j]);

strcpy(s[j],temp);

}

}

//主函数

void main()

{

int i;

char p[N][M];

printf("输入%d个单词:\n",N);

for(i=0;i<N;i++)

gets(p[i]);

PX(p);

printf("排序后:\n");

for(i=0;i<N;i++)

puts(p[i]);

}

/*

===============================================================

评:

首先想到利用函数,至少可以先写出主函数;

先定义函数PX实现排序功能,其中用到了strcmp和strcpy以及数组,然后

写主函数,简单调用PX函数即可完成。后续学到指针还可继续改写程序。

关于循环控制,

函数体里面的两个for循环!此处用了冒泡排序法!

===============================================================

*/

版权声明:博主文章可以被非商用转载,但请务必注明出处,因水平有限,难免出错,在此免责。

时间: 2024-12-18 13:42:11

C语言之函数调用18—多字符串排序的相关文章

C语言之函数调用19—总结

C程序的函数调用共涵盖18个例题,包含了递归.递推.字符串操作.矩阵操作.格式输出等内容. 相比之前的基本算法,函数调用已经初见其效率,至此,相信大家对函数调用也有了比较好的认识,就是先表达出功能,当要解决问题时,只要简单调用即可.我们常常会听说C的强大,也是因为她有着调用函数的功能,而且函数可以自己实现. 接下来作者会推出文件操作的基础编程方法,希望大家能够共同进步. 不积跬步无以至千里!共勉! 二〇一五年八月二日  夜 附: C语言之函数调用18-多字符串排序 2015-08-02 01:0

YTU 2419: C语言习题 等长字符串排序

2419: C语言习题 等长字符串排序 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 426  Solved: 169 [Submit][Status][Web Board] Description 在主函数中输入n(n<=10)个等长的字符串.用另一函数对它们排序.然后在主函数输出这n个已排好序的字符串. Input n和n个等长字符串 Output n个已排好序的字符串 Sample Input 5 abcdf 12345 ert45 fg4

深入理解C语言的函数调用过程 【转】

转自:http://blog.chinaunix.net/uid-25909619-id-4240084.html 原文地址:深入理解C语言的函数调用过程 作者:wjlkoorey258 本文主要从进程栈空间的层面复习一下C语言中函数调用的具体过程,以加深对一些基础知识的理解.    先看一个最简单的程序: 点击(此处)折叠或打开 /*test.c*/ #include <stdio.h> int foo1(int m,int n,int p) { int x = m + n + p; ret

Openjudge-计算概论(A)-字符串排序

描述 参考整数排序方法,设计一种为字符串排序的算法,将字符串从小到大输出 输入 第一行为测试数据组数t, 后面跟着t组数据.每组数据第一行是n,表示这组数据有n行字符串,接下来是要排序的n行字符串.每行字符串的字符个数不会大于200, n < 100. 输出 对于每组数据,输出排好序的字符串,每组输出后要多输出一个空行 样例输入 2 2 Hello World 4 I Love C Language! 样例输出 Hello World C I Language! Love思路:这题可以把它们全部

gets()、puts()函数。字符串函数。字符串排序的例子。

1.实例程序:string.c的程序: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include<stdio.h> #define MSG "YOU MUST have many talents .tell me some." #define LIM 5 #define LINELEN 81 int main() { char name[LINELEN]; char

关于字符串排序合并的问题

今天遇到了一个问题,题目大意是输入两个字符串,然后给这两个字符串按照ASCII码从小到大进行排序,最后在将两个字符串合并,要求删除其中相同的字符.一开始的时候感觉挺简单的一道题,但是做起来还是小毛病挺多的.还是直接看代码吧,代码里面的注释有许多需要注意的地方. 1 #include<stdio.h> 2 #include<string.h> 3 void sort(char *p) //给字符串排序,参数为字符串首地址 4 { 5 char temp; 6 char *head,*

[C]字符串排序之-冒泡法

在oj刷题,遇见一题字符串排序题. 脑海里瞬间闪过数组排序. 思路有了,打开题解看看别人的思路,发现好多人的排序方法显得比较臃肿,可能也是我的水平不够,欣赏不来吧. 不过用冒泡法排序的时候一定要记得字符串不可以通过值传递的方式来修改!!! 谨记strcpy大法好!!! 附上原题及代码; 题目:输入三个字符串,按由小到大的顺序输出 1 #include <stdio.h> 2 #include <string.h> 3 4 int main() 5 { 6 char ar[3][10

c语言中函数调用的本质从汇编角度分析

今天下午写篇博客吧,分析分析c语言中函数调用的本质,首先我们知道c语言中函数的本质就是一段代码,但是给这段代码起了一个名字,这个名字就是他的的这段代码的开始地址 这也是函数名的本质,其实也就是汇编中的标号.下面我们会接触到一些东西 比如 eip 就是我们常常说的程序计数器,还有ebp和esp (这里是俩个指针,记得我们以前学8086也就一个sp堆栈指针)分别为EBP是指向栈底的指针,在过程调用中不变,又称为帧指针.ESP指向栈顶,程序执行时移动,ESP减小分配空间,ESP增大释放空间,ESP又称

[华为]字符串排序

字符串排序 编写一个程序,将输入字符串中的字符按如下规则排序. 规则1:英文字母从A到Z排列,不区分大小写. 如,输入:Type 输出:epTy 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列. 如,输入:BabA 输出:aABb 规则3:非英文字母的其它字符保持原来的位置. 如,输入:By?e 输出:Be?y 样例: 输入: A Famous Saying: Much Ado About Nothing(2012/8). 输出: A aaAAbc dFgghh: iimM nNn