是否可以用typedef 定义一个字符串数组为某种类型,之后再得到该种类型的一个数组,之后便可以比较?
void sort(char s[][50],size_t size)
{
for(int i=0;i<size -1;i++)
for(int j=0;j<size-i-1;j++)
if (strcmp(s[j], s[j + 1]) > 0)//每个一维数组是一个字符串
{
char temp[50];//临时存储字符串
strcpy(temp, s[j]);//采用strcpy给字符串赋值
strcpy(s[j], s[j + 1]);
strcpy(s[j+1], temp);
}
}
int main()
{
char s[10][50];
for (int i = 0; i < 10; i++)
fgets(s[i],50,stdin);//从标准输入流读取一行字符存储到s[i]中
sort(s,10);
printf("排序后:\n");
for (int i = 0; i < 10; i++)
fputs(s[i],stdout);//将s[i]的字符串打印到输出流
return 0;
}
c语言也一样的,字符串数组操作。
如下代码输入10个字符串,并采用冒泡排序输出。
#include<stdio.h>
#include<string.h>
void sort(char s[][50])
{
for(int i=0;i<9;i++)
for(int j=0;j<9-i;j++)
if (strcmp(s[j], s[j + 1]) > 0)
{
char temp[50];
strcpy_s(temp,50, s[j]);
strcpy_s(s[j], 50, s[j + 1]);
strcpy_s(s[j+1], 50, temp);
}
}
int main()
{
char s[10][50];
for (int i = 0; i < 10; i++)
gets(s[i]);
sort(s);
for (int i = 0; i < 10; i++)
puts(s[i]);
return 0;
}