배열 하나 더 질문드립니다...
윤비
질문 제목 : 배열출력
거꾸로 배열 출력하려는데 이상하게 출력됩니다.질문 내용 :
#include stdio.h
int main()
{
char name[15];
char name_cp[] = \0;
char serial[20];
int i,j,arr_len,name_len,serial_len;
unsigned char arr[35]={0x2d,0x5b,0x23,0x5d,0x5d,0x3d,0x7d,0x26,0x26,0x26,0x2b,0x28,0x3d,0x24,
0x2a,0x2c,0x2c,0x29,0x26,0x2e,0x2a,0x2f,0x2b,0x2b,0x2b,0x5b,0x5d,0x5b,0x3b,0x2f,0x2e,0x2e,0xa7,0x30};
unsigned char arr_cp[] = \0;
unsigned char value[] = \0;
arr_len = strlen(arr);
//printf(%d \n\n,arr_len);
printf(name : );
scanf(%s,name);
printf(serial : );
scanf(%s,serial);
name_len = strlen(name);
serial_len = strlen(serial);
//printf(%d / %d \n,name_len,serial_len);
j=0;
for(i=0; i (name_len*2); i++)
{
if(i % 2 == 0)
{
name_cp[i] = name[j];
j++;
}
else
{
name_cp[i] = 0x20;
}
}//test-t e s t
for(i=0; i arr_len;i++)
{
arr[i] += 1;
}//기본배열+1
for(i=0; i strlen(name_cp); i++)
{
arr[i] ^= name_cp[i];
}
for(i=0; iarr_len;i++)
{
printf(%d = %x ,,i,arr[i]);
}
printf(\n%x\n,arr[14]);
j=arr_len-1;
for(i=0; i arr_len; i++)
{
arr_cp[i] = arr[j];
printf(%d,%d = %x , %x\n,i,j,arr_cp[i],arr[j]);
j--;
}
for(i=0; iarr_len;i++)
{
printf(%d = %x ,,i,arr[i]);
}
return 0;
}
----------------------------------------------------------------------------------------------------------------
name에는 test 를 입력시키고
serial에는 123을 입력시켜야 합니다.
빨간 부분에서 arr배열들은 아래와 같이 출력되어야 하고,arr_cp배열들은 arr배열을 끝에서부터 입력한 것을 출력해야 하기 때문에 다음과 같이 출력되어야 합니다
(00 부분들은 무시하셔도 됩니다)
근데 자꾸 두 배열이 다음과 같이 출력됩니다. (i,j = arr_cp[i] , arr[j] 형태입니다)
처음에는 잘 대입시키다가 19,14 = 2d , 2d 부분부터 이상하게 들어갑니다...
arr배열을 변경시키는 게 없는데... arr배열이 변해버립니다...ㅠ 이유가 무엇인가요,,,?