实现功能:
1.二维字符数组元素的输入
2.二维字符数组元素的输出
3.字符数组元素按字符串大小排序
4.字符数组元素按字符串长度排序
printf("==================================\n");
printf("1------字符数组元素输入\n");
printf("2------字符数组元素输出\n");
printf("3------字符数组元素按字符串大小排序\n");
printf("4------字符数组元素按字符串长度排序\n");
printf("0------退出\n");
printf("请输入你的选择\n");
printf("==================================\n");
#include<stdio.h>
#include<string.h>
#define N 5
#define M 20
void input(char arr[][M],int n);
void output(char arr[][M],int n);
void str_cmp(char arr[][M],int n);
void str_cmp2(char arr[][M],int n);
void str_cmp2(char arr[][M],int n)
{
int i = 0;
int j = 0;
char s[M] = {0};
for(j = 0;j < n;j++)
{
for(i = 0;i < n-1-j;i++)
{
if(strlen(arr[i]) > strlen(arr[i+1]) )
{
strcpy(s,arr[i]);
strcpy(arr[i],arr[i+1]);
strcpy(arr[i+1],s);
}
}
}
}
void str_cmp(char arr[][M],int n)
{
int i = 0;
int j = 0;
char s[M] = {0};
for(j = 0;j < n;j++)
{
for(i = 0;i < n-1-j;i++)
{
if(strcmp(arr[i],arr[i+1]) > 0)
{
strcpy(s,arr[i]);
strcpy(arr[i],arr[i+1]);
strcpy(arr[i+1],s);
}
}
}
}
void output(char arr[][M],int n)
{
int i = 0;
for(i = 0;i < n;i++)
{
printf("%s\t",arr[i]);
}
printf("\n");
}
void input(char arr[][M],int n)
{
int i = 0;
printf("请输入%d个字符串\n",n);
for(i = 0;i < n;i++)
{
scanf("%s",arr[i]);
}
}
int main(void)
{
int op = 0;
char arr[N][M] = {0};
while(1)
{
printf("==================================\n");
printf("1------字符数组元素输入\n");
printf("2------字符数组元素输出\n");
printf("3------字符数组元素按字符串大小排序\n");
printf("4------字符数组元素按字符串长度排序\n");
printf("0------退出\n");
printf("请输入你的选择\n");
printf("==================================\n");
scanf("%d",&op);
if(op == 0)
break;
switch(op)
{
case 1:
input(arr,N);
break;
case 2:
output(arr,N);
break;
case 3:
str_cmp(arr,N);
output(arr,N);
break;
case 4:
str_cmp2(arr,N);
output(arr,N);
break;
}
}
}