More actions
소 감
strlen이라는 기본 함수가 있긴한데(아영이 소스 보고 알았음;;) 프로그래밍 이미 짜놓고 알았다-_-;
심심해서 메인함수는 걍 짧게 해보았음;;
소스파일이 한글이면 제대로 리버스가 안되요 ㅠㅠ
코 드
#include <stdio.h>
#define BUFFER_SIZE 50
//string의 길이를 잽니다.
int strlen(char str[])
{
int len=0;
while(1)
{
if (str[len] == 0 || str[len] == '\0') break;
len++;
}
return len;
}
//두 문자를 바꿉니다.
void exchange_char(char *a, char *b)
{
char tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
//함수를 역순 시킵니다.
void reverse_array(char str[])
{
int len=0, p=0;
len = strlen(str);
while(1)
{
if( (len-1)-p <= p ) break;
exchange_char(&str[p], &str[len-1-p]);
p++;
}
}
void openiofiles(char* infilename,char* outfilename, FILE** fin, FILE** fout, char** buf[])
{
*fin = fopen(infilename,"rt");
*fout = fopen(outfilename,"wt");
fgets(buf,BUFFER_SIZE,*fin);
}
void closeiofiles(FILE** fin, FILE** fout, char buf[])
{
fputs(buf,*fout);
fclose(*fout);
fclose(*fin);
}
int main()
{
FILE *fin, *fout;
char buf[BUFFER_SIZE];
//파일을 엽니다
openiofiles("source.txt","result.txt",&fin,&fout,buf);
//역순으로 만듭니다.
reverse_array(buf);
//파일을 닫습니다.
closeiofiles(&fin,&fout,buf);
return 0;
}
나한테 할 말
올.. 역할 분담 잘했군 +_+ , 나도 다음부턴 그렇게 짜야겠다.! 물어볼 게 있는데, strlen 함수 만들었잖아. 너가 그 함수 만든 원리 설명좀 ^^ --아영
문자"열"은 항상 맨 끝에 '\0'값을 붙여서 문자열들이 끝이라는걸 알려주니 그전에 문자들의 갯수를 세었어 지금보니까 ~cpp str[len] == 0 || str[len] == '\0' 요렇게 두번 쓸 필요 없이 str[len] == '\0'
처럼 하나만 써도 될거같네 ㅇㅅㅇ/ - 태훈[zyint]