比较字符串,并按ASCII码顺序输出
问题:该题目来自牛客网,使用fgets()和fputs()输入输出时,不能通过其测试,只能用scanf()和printf()
思路:使用二维数组存放单词,并用strcmp比较。
/*************************************************************************
> File Name: e162.c
> Author: LNM
> Mail: liunenming@gmail.com
> Created Time: 2018年09月05日 星期三 20时53分18秒
>function:
************************************************************************/
#include<stdio.h>
#include<string.h>
#define MAX 100
void swap(char*,char*);
int main()
{
int n,i,j;
scanf("%d",&n);
char word[n][MAX];
for(i = 0;i < n;i ++)
fgets(word[i],MAX,stdin);
for(i = 0;i < n - 1;i ++)
{
for(j = 0;j < n - 1 - i;j ++)
{
if(strcmp(word[j],word[j+1]) > 0)
swap(word[j],word[j+1]);
}
}
for(i = 0;i < n;i ++)
fputs(word[i],stdout);
return 0;
}
void swap(char *str1,char *str2)
{
char tmp[MAX] = {0};
memcpy(tmp,str1,MAX);
memcpy(str1,str2,MAX);
memcpy(str2,tmp,MAX);
}