Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

문자반대출력/김태훈zyint: Difference between revisions

From ZeroWiki
imported>Unknown
No edit summary
 
(Repair batch-0005 pages from live compare)
 
Line 15: Line 15:
   
   
  //string의 길이를 잽니다.  
  //string의 길이를 잽니다.  
  int strlen(char str[])
  int strlen(char str[])
  {
  {
  int len=0;
  int len=0;
  while(1)
  while(1)
  {
  {
  if (str[len] == 0 || str[len] == '\0') break;
  if (str[len] == 0 || str[len] == '\0') break;
  len++;
  len++;
  }
  }
Line 36: Line 36:
   
   
  //함수를 역순 시킵니다.
  //함수를 역순 시킵니다.
  void reverse_array(char str[])
  void reverse_array(char str[])
  {
  {
  int len=0, p=0;
  int len=0, p=0;
Line 44: Line 44:
  {
  {
  if( (len-1)-p <= p ) break;
  if( (len-1)-p <= p ) break;
  exchange_char(&str[p], &str[len-1-p]);
  exchange_char(&str[p], &str[len-1-p]);
  p++;
  p++;
  }
  }
Line 51: Line 51:
  }
  }
   
   
  void openiofiles(char* infilename,char* outfilename, FILE** fin, FILE** fout, char** buf[])
  void openiofiles(char* infilename,char* outfilename, FILE** fin, FILE** fout, char** buf[])
  {
  {
  *fin = fopen(infilename,"rt");
  *fin = fopen(infilename,"rt");
Line 58: Line 58:
  }
  }
   
   
  void closeiofiles(FILE** fin, FILE** fout, char buf[])
  void closeiofiles(FILE** fin, FILE** fout, char buf[])
  {
  {
  fputs(buf,*fout);
  fputs(buf,*fout);
Line 71: Line 71:
   
   
  FILE *fin, *fout;
  FILE *fin, *fout;
  char buf[BUFFER_SIZE];
  char buf[BUFFER_SIZE];
   
   
 
 
Line 89: Line 89:
=== 나한테 할 말 ===
=== 나한테 할 말 ===
올.. 역할 분담 잘했군 +_+ , 나도 다음부턴 그렇게 짜야겠다.!  
올.. 역할 분담 잘했군 +_+ , 나도 다음부턴 그렇게 짜야겠다.!  
물어볼 게 있는데, strlen 함수 만들었잖아. 너가 그 함수 만든 원리 설명좀 ^^ --[[아영]]
물어볼 게 있는데, strlen 함수 만들었잖아. 너가 그 함수 만든 원리 설명좀 ^^ --아영
  문자"열"은 항상 맨 끝에 '\0'값을 붙여서 문자열들이 끝이라는걸 알려주니 그전에 문자들의 갯수를 세었어
  문자"열"은 항상 맨 끝에 '\0'값을 붙여서 문자열들이 끝이라는걸 알려주니 그전에 문자들의 갯수를 세었어
  지금보니까  
  지금보니까  
~cpp str[len] == 0 || str[len] == '\0' 요렇게 두번 쓸 필요 없이 str[len] == '\0'
<code>str&#91;len&#93; == 0 || str&#91;len&#93; == '\0' 요렇게 두번 쓸 필요 없이 str&#91;len&#93; == '\0'</code>
처럼 하나만 써도 될거같네 ㅇㅅㅇ/ - 태훈&#91;zyint&#93;
처럼 하나만 써도 될거같네 ㅇㅅㅇ/ - 태훈&#91;zyint&#93;
----
----
[[LittleAOI]] [[문자반대출력]]
[[LittleAOI]] [[문자반대출력]]

Latest revision as of 00:44, 27 March 2026

소 감

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'값을 붙여서 문자열들이 끝이라는걸 알려주니 그전에 문자들의 갯수를 세었어
지금보니까 

str[len] == 0 || str[len] == '\0' 요렇게 두번 쓸 필요 없이 str[len] == '\0' 처럼 하나만 써도 될거같네 ㅇㅅㅇ/ - 태훈[zyint]


LittleAOI 문자반대출력