게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C] 문자열 삽입 및 reverse에 대한 성능 향상을 하려는데..
게시물ID : programmer_18957짧은주소 복사하기
작성자 : 훗날닭집사장
추천 : 0
조회수 : 359회
댓글수 : 4개
등록시간 : 2016/11/12 12:34:17
옵션
  • 본인삭제금지
int readaline_and_out(FILE *fin, FILE *fout)
{   
    int ch, count = 0;
    char buf[1024] = {0,};
    char result[1024] = {0,};
 
    do {
        if ((ch = fgetc(fin)) == EOF) {
            if (!count)
                return 1;
            else {
  buf[count] = 0x0a;
//              fputc(0x0a, fout);
                break;
            }
        }
 buf[count] = ch;
//      fputc(ch, fout);
        count++;
    } while (ch != 0x0a);
    reverseArray(buf, result, count-1);
 
    fputs(result, fout);
    
    return 0;
}
 
void reverseArray(char * src, char * dest, int size)
{
    int i = 0;
    int j = size - 1;
    for(i=0; i<size; i++) {
 dest[i] = src[j];
 j--;
    }
    dest[size] = 0x0a;
}
 
위 함수가 배열에 문자열을 삽입하는 함수, (주석친 fputc 대신 배열을 활용했는데요, fputc에서 char마다 접근하던 것을 line 단위로 접근하도록 의도했습니다)
 
밑에 배열이 입력된 문자열을 reverse하는 함수인데요.
 
여기서 성능을 좀더 개선할 수 있을까요?
main에는 성능측정 코드가 들어가있는데, fputc로 char마다 접근하는 방식에서 배열접근 방식으로 바꾸니 기존에 120ms정도의 수행시간에서
 
평균 100ms정도로 감소는 했습니다만 두자리수로 줄일수는 없을까 해서요..
 
혹시 다른 방식으로 시간을 감소시킬 수는 없을까요~~
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호