출력하면 글씨가꺠져요
뿌닝
질문 제목 :문자열을 거꾸로 바꿔서 출력하는건데
이중포문을 돌면 글씨가꺠져서 출력되요질문 요약 :글씨가 왜꺠지는거죠? 그리고 저렇게 안하고 그냥 포문한개써서 dat에잇는문자열을 reverse
에 옮겨서 출력했을때는 글씨가깨지지않아요
질문 내용 : // hong ga.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//
#include stdafx.h
#include string.h
void change(char*,char*);
int main()
{
file *ifp;
char dat[10];
char reverse[10];
int res;
ifp=fopen(test.txt,r);
if(ifp==null)
{
printf(파일개방실패);
return 1;
}
while(1){
res=fscanf(ifp,%s,dat);
if(res==eof)break;
change(dat,reverse);
puts(reverse);
}
printf(\n);
fclose(ifp);
return 0;
}
void change(char *datt, char *reversee)
{
int i,j;for(i=10;i=0;i--){
for(j=0;j=10;j++){
reversee[j]=datt[i];
}
}
}
-
은소라
그니까 문자열을뒤집을때 하나는 증가하고 하나는 감소해야함니다
저이중포문이돌아가면서 reversee[0]=datt[10]-reversee[1]=datt[9]이런식으로여 -
꽃봄
문자열을 뒤집는 데에 for문이 하나면 되지 않나요? 두 개를 써야 되는 이유를 알려주세요.
char reverse[10];
라고 배열을 선언하면 reverse[0]부터 reverse[9]까지 10개를 사용할 수 있습니다.
for(i=10;i=0;i--){
이렇게 반복하면 i가 10이고 반복을 안 하게 됩니다. 반복 조건이 i = 0 이니까요.
그런데 i가 10일때 reverse[10]을 사용하게 돼서 에러입니다.