Write a program to implement sort command.
#include<stdio.h> #include<string.h> #include<stdlib.h> #include"fileinfo.h" void Sort_Accordig_to_Line_Length(FILE*,char*); int main() { FILE *fp; char file[32]; printf("Enter file name : "); scanf("%[^\n]",file); fp = fopen(file,"r"); if(fp == NULL) { printf("file is not present in this directoty\n"); return 0; } Sort_Accordig_to_Line_Length(fp,file); return 0; } void Sort_Accordig_to_Line_Length(FILE *fp,char *name) { char **p,ch,temp[100],*t; int j,i,LineCount,StrLenMax,m; LineCount = Get_Total_Lines(fp); StrLenMax = Get_Max_String_Length(fp); p = (char**)malloc(sizeof(char*) * LineCount); for(i = 0; i < LineCount;i++) { p[i] = (char*)malloc(StrLenMax+1); fgets(p[i],StrLenMax+1,fp); } t = (char*)malloc(sizeof(StrLenMax+1)); for(i = 0;i < LineCount;i++) { for(j = i + 1; j < LineCount;j++) { if(strcmp(p[i],p[j]) > 0) { t = p[i]; p[i] = p[j]; p[j] = t; } } } fclose(fp); fp = fopen(name,"w"); for(i = 0;i< LineCount;i++) { fputs(p[i],fp); } fclose(fp); printf("Sorting Done....\n"); }
Output
cat t1 adb abd ace aed atd
Enter file name : t1 Sorting Done....
cat t1 abd ace adb aed atd