现在位置: 首页 > C 教程 > 正文

C 练习实例79

C 语言经典100例 C 语言经典100例

题目:字符串排序。

程序分析:无。

程序源代码:

实例

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_LEN 20 // 定义常量表示字符串的最大长度 // 函数声明:用于交换两个字符串 void swap(char *str1, char *str2); int main() { char str1[MAX_LEN], str2[MAX_LEN], str3[MAX_LEN]; // 提示用户输入字符串 printf("请输入3个字符串,每个字符串以回车结束:\n"); // 使用 fgets 读取输入并去除换行符 fgets(str1, sizeof(str1), stdin); str1[strcspn(str1, "\n")] = '\0'; // 去除换行符 fgets(str2, sizeof(str2), stdin); str2[strcspn(str2, "\n")] = '\0'; // 去除换行符 fgets(str3, sizeof(str3), stdin); str3[strcspn(str3, "\n")] = '\0'; // 去除换行符 // 对字符串进行排序 if (strcmp(str1, str2) > 0) swap(str1, str2); if (strcmp(str2, str3) > 0) swap(str2, str3); if (strcmp(str1, str2) > 0) swap(str1, str2); // 输出排序后的结果 printf("排序后的结果为:\n"); printf("%s\n%s\n%s\n", str1, str2, str3); return 0; } // 交换两个字符串的内容 void swap(char *str1, char *str2) { char temp[MAX_LEN]; strcpy(temp, str1); // 将 str1 复制到临时字符串 temp strcpy(str1, str2); // 将 str2 复制到 str1 strcpy(str2, temp); // 将 temp 复制到 str2 }

以上实例运行输出结果为:

请输入3个字符串,每个字符串以回车结束!:
b
a
t
排序后的结果为:
a
b
t

C 语言经典100例 C 语言经典100例