#include <stdio.h>
#define N 6
int strCmp(char s1[], char s2[]);
void BubbleSort(char s[][N], int n);
void swap(char s1[], char s2[]);
int main()
{
char s[5][N];
int i;
for(i = 0; i < 5; i++)
{
gets(s[i]);
}
BubbleSort(s, 5);
for(i = 0; i < 5; i++)
{
printf("%s\n", s[i]);
}
return 0;
}
int strCmp(char s1[], char s2[])
{
int i = 0, j = 0;
while(1)
{
if(s1[i] < s2[j])
return -1;
else if(s1[i] > s2[j])
return 1;
else
{
i++;
j++;
}
if(s1[i] == '\0' || s2[j] == '\0')
break;
}
return 0;
}
int strCmp2(char s1[], char s2[])
{
//int i = 0, j = 0;
for(; *s1 && *s2; ++s1, ++s2)
{
if(*s1<*s2){
return -1;
}else if(*s1>*s2){
return 1;
}
}
return 0;
}
void swap(char s1[], char s2[])
{
int i;
char c;
for(i = 0; i < N; i++)
{
c = s1[i];
s1[i] = s2[i];
s2[i] = c;
}
}
void BubbleSort(char s[][N], int n)
{
int i, j;
for(i = 0; i < n-1; i++)
{
for(j = 1; j < n-i; j++)
{
//printf("sdfsdfsdfsdfdsfsdfsdf\n");
printf("%s %s ", s[j], s[j-1]);
if(strCmp(s[j], s[j-1]) <0){
printf("swap\n");
swap(s[j], s[j-1]);
}
else{printf("not swap\n");}
}
}
}
字符串排序
最新推荐文章于 2021-03-09 16:27:49 发布