More actions
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 | 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 | 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 | char buf[BUFFER_SIZE]; | ||
| Line 89: | Line 89: | ||
=== 나한테 할 말 === | === 나한테 할 말 === | ||
올.. 역할 분담 잘했군 +_+ , 나도 다음부턴 그렇게 짜야겠다.! | 올.. 역할 분담 잘했군 +_+ , 나도 다음부턴 그렇게 짜야겠다.! | ||
물어볼 게 있는데, strlen 함수 만들었잖아. 너가 그 함수 만든 원리 설명좀 ^^ -- | 물어볼 게 있는데, strlen 함수 만들었잖아. 너가 그 함수 만든 원리 설명좀 ^^ --아영 | ||
문자"열"은 항상 맨 끝에 '\0'값을 붙여서 문자열들이 끝이라는걸 알려주니 그전에 문자들의 갯수를 세었어 | 문자"열"은 항상 맨 끝에 '\0'값을 붙여서 문자열들이 끝이라는걸 알려주니 그전에 문자들의 갯수를 세었어 | ||
지금보니까 | 지금보니까 | ||
<code>str[len] == 0 || str[len] == '\0' 요렇게 두번 쓸 필요 없이 str[len] == '\0'</code> | |||
처럼 하나만 써도 될거같네 ㅇㅅㅇ/ - 태훈[zyint] | 처럼 하나만 써도 될거같네 ㅇㅅㅇ/ - 태훈[zyint] | ||
---- | ---- | ||
[[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]