
13.05.2010, 14:54
|
|
Новичок
Регистрация: 30.11.2008
Сообщений: 15
С нами:
9181428
Репутация:
16
|
|
пипл, помогите плиз на си накодить следующую штуку
Отсортировать строки файла сначала по длине, а затем строки равной длины в алфавитном порядке, результат вывести в файл
в алфавитном порядке уже нашел как:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLINE 4096
#define IFNAME "in.txt"
#define OFNAME "out.txt"
int scmp(const void *p1, const void *p2)
{
const char *s1, *s2;
s1 = * (char **) p1;
s2 = * (char **) p2;
return strcmp(s1, s2);
}
int main(void)
{
FILE *ifp, *ofp;
char *lineptr[MAXLINE];
char s[MAXLINE];
int i, nl;
ifp = fopen(IFNAME, "r");
if(ifp == NULL || (ofp = fopen(OFNAME, "w")) == NULL) {
perror("fopen");
return -1;
}
for(i = 0; i < MAXLINE; ) {
if(fgets(s, sizeof(s), ifp) == NULL)
break;
if(*s != '\n')
lineptr[i++] = strdup(s);
}
nl = i;
qsort(lineptr, nl, sizeof(char *), scmp);
for(i = 0; i < nl; i++) {
fprintf(ofp, "%s", lineptr[i]);
free(lineptr[i]);
}
fclose(ifp);
fclose(ofp);
return 0;
}
осталось первую часть реализовать  с меня 5 wmz 
|
|
|