배열 문자 순서바꾸기 질문
미즈
2023.04.01
질문 제목 : 배열 문자 순서 바꾸기 질문질문 요약 :
배열에서 문자를 입력받고 역순으로 출력하는 문제인데
첫번째 문자는 Temp[0]에 대입이 되는데 나머지에서 오류가 발생합니다 왜이럴까요 ..질문 내용 :
#include stdio.hint main (void)
{
char Input[50];
int i=0;
char Temp[50];
int k; printf(입력:);
scanf(%s,Input); while(Input[i]!=0)
i++;
i-=1;
for(k=0; k=i; k++)
{
Temp[k]=Input[i];
k++;
i--;
}
printf(%s\n,Temp);
return 0;
}
-
VE
감사합니다~
-
향율
우선 보이는 것 중에서 for문에서 k++가 두번 들어간 셈이네요.
거기다가 반복루틴에서는 i--를 해주고, for의 비교문에서는 k = i 를 해 주면 너무 이상한 코딩이
되어 버립니다.
for문을 이렇게 고쳐보세요.
for(k = 0; k= i; k++) {
Temp[k] = input[i-k];
}
Temp[i+1] = 0x00; -
이치코
모든 문자가 정상적으로 바뀌게 되어도 위 코드로는 Temp에 널문자가 들어가지 않아서
%s로 출력할경우 뒤에 쓰레기값들도 같이 출력되게 됩니다