🥰欢迎关注 轻松拿捏C语言系列,来和 小哇 一起进步!✊
🌈感谢大家的阅读、点赞、收藏和关注
解题思路:
- 首先:使用一个二维字符数组来存储输入的字符串。由于n的范围是1到9,我们可以直接定义一个固定大小的二维数组。
- 读取输入:
- 然后读取整数n,并检查其是否在有效范围内。
- 然后使用循环读取
n
个字符串。可以使用fgets
函数来读取字符串,同时要注意处理字符串末尾可能存在的换行符。(fgets不会忽略空格及空格后面内容,而scanf会忽略)
- 排序字符串:选择一个合适的排序算法对字符串进行排序。由于字符串的排序通常基于字典序,我使用了
strcmp
函数来比较两个字符串的大小。这里我采用了冒泡排序来实现。 - 代码
#include<stdio.h> #include<string.h> void Input(char p[][50], int len) {int i;for (i = 0; i < len; i++){fgets(p[i],50,stdin);p[i][strcspn(p[i], "\n")] = 0;//移除字符末尾的换行符} } void Output(char (*p)[50], int len) {int i;for (i = 0; i < len; i++)//puts(p[i]);//两者效果一样printf("%s\n",p[i]); } void Sort(char(*p)[50], int len)//排序 {int i = 0;char temp[50];for (i; i < len-1; i++){int j = 0;for (j; j < len - 1 - i; j++) { if (strcmp(p[j], p[j + 1]) > 0)//使用strcmp函数来比较{strcpy(temp, p[j]);strcpy(p[j], p[j+1]);strcpy(p[j+1], temp);}}} } int main() {int n = 0;scanf("%d", &n);char arr[10][50];Input(arr,n);Output(arr, n);Sort(arr, n);printf("排序后:\n");Output(arr, n);return 0; }
🎉🎉本次的内容结束啦,欢迎有问题评论区讨论。
😘💕希望大家能够三连支持,你们的鼓励是我前进的动力
🌹🌹谢谢观看!