2017-03-29 13 views
0

알파벳을 따라 단어를 정렬 할 수있는 프로그램을 만들어야합니다. 현재 작성한 프로그램은 단어를 정렬 할 수 있지만 새 줄 ('\ n')에있는 경우에만 가능합니다.알파벳으로 단어 정렬

줄에 더 이상있는 단어는 정렬되지 않습니다.

#include <stdio.h> 
#include <stdlib.h> 
#include <strings.h> 
#define SIZE 30 
#define LEN 31 

void bron (char *fnamer) 
{ 
printf("\nGeef de naam van de in te lezen txt file: \n"); 
gets(fnamer); 
//getchar(fnamer); 
} 

void uitgave (char *fnamer2) 
{ 
printf("\nGeef de naam van de nieuwe geschreven txt file: \n"); 
gets(fnamer2); 
//getchar(fnamer2); 
} 

int main() 
{ 
char name[LEN][SIZE]; 
char hold[LEN] ; 
int i,j ; 
int last ; 
FILE *fp; 
FILE *fp2; 

char ch; 
char fnamer[1000]; 
char fnamer2[1000]; 

bron(fnamer); 

fp=fopen(fnamer,"r"); 
if(fp==NULL) 
{ 
    printf("Error!"); 
    exit(1); 
} 
uitgave(fnamer2); 
fp2=fopen(fnamer2,"w"); 
if(fp2==NULL) 
{ 
    printf("Error!"); 
    exit(1); 
} 
else 
{ 

    for(i = 0 ; !feof(fp) ; i++) 

    { 
     fgets(name[i] , LEN, fp); 
    } 
    last = i - 1 ; 

    fclose(fp); 

    for (i = last ; i > 0 ; i--) 
     for (j = 1 ; j <= i ; j++) 

      if (strcmp(name[j],name[j - 1]) < 0) 
      { 
       strcpy(hold,name[j]) ; 
       strcpy(name[j],name[j - 1]) ; 
       strcpy(name[j - 1],hold) ; 
      } 

    for (i = 0 ; i <= last ; i++) 
    { 
     printf("%s",name[i]) ; 
     // fprintf("%s", name [i]); herzien 
    } 

} 
printf("\n%s \t%s",fnamer,fnamer2) ; 
//fprintf(fp, %s) ; // herzien 
fclose(fp2); 
return 0; 
} 

문제가 무엇입니까 : 여기

코드인가?

+0

코드에서 텍스트 파일의 줄을 읽고 인쇄 할 단어의 정렬 목록을 파일로 인쇄/다시 쓰고 싶습니다. 모든 단어를 저장할 수 있으며 간단하게 거품 정렬을 적용 할 수 있습니다. –

답변

0

예. 맞습니다. 그러나 그것이 잘못 될 수는 없습니다. 가장 먼저. 나는 텍스트 파일에 단어를 쓰는 programe van을 관리 할 수 ​​없다. 그리고 두 번째로 나는 프로그램에 줄을 바꾸는 방법을 모르고 새로운 줄의 단어뿐만 아니라 모든 단어를 보았다.