U E D R , A S I H C RSS

문자반대출력/김태훈zyint

소 감

strlen이라는 기본 함수가 있긴한데(아영이 소스 보고 알았음;;)
프로그래밍 이미 짜놓고 알았다-_-;

심심해서 메인함수는 걍 짧게 해보았음;;

소스파일이 한글이면 제대로 리버스가 안되요 ㅠㅠ


코 드

~cpp 
#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



Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:29
Processing time 0.0101 sec