1 题目
字符串排序,输出三个字符串(长度小于20),并将其按照ASCII码顺序排序。
2 分析
首先限制三个字符串的输入,本例利用fgets函数,该函数的原型为:
char *fgets(char *str, int n, FILE *stream)
- str : 这是指向一个字符数组的指针,该数组存储了要读取的字符串。
- n : 这是要读取的最大字符数(包括最后的空字符)。通常是使用以 str 传递的数组长度。
- stream : 这是指向 FILE 对象的指针,该 FILE 对象标识了要从中读取字符的流。
其中字符串的长度可以通过sizeof技巧来计算即数组总大小/单个项大小,就是总长度sizeof str1 / sizeof str1[0],stream则为标准输入流stdin
由于本例中只有三个字符串,很容易想到之前做过的三个数的大小比较, 是通过三个if语句判断的,在本例中如何判断字符串大小呢?实际上C语言string.h头文件中包含了字符串比较函数strcmp,它的函数原型如下:
int strcmp(const char *str1, const char *str2)
其中str1和str2是要比较的两个字符串,它的返回值如下:
- 如果返回值小于 0,则表示 str1 小于 str2。
- 如果返回值大于 0,则表示 str2 大于 str1。
- 如果返回值 = 0,则表示 str1 等于 str2。
该函数的实现原理是通过比较ASCII码值来实现的。
在比较两个字符串大小后,则要交换两字符串,这里可以使用strcpy字符串复制函数来实现,它的原型如下:
char *strcpy(char
C语言字符串排序

本文介绍了一个C语言程序,用于输入三个长度小于20的字符串,并按照ASCII码顺序进行排序。程序利用fgets函数读取字符串,使用strcmp函数比较字符串大小,通过swap函数交换字符串位置。
最低0.47元/天 解锁文章
3828

被折叠的 条评论
为什么被折叠?



