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정도로 감소는 했습니다만 두자리수로 줄일수는 없을까 해서요..
혹시 다른 방식으로 시간을 감소시킬 수는 없을까요~~