c언어 hex문자열 디코딩해서 다시 원문 문자열로 바꾸는함수 질문드립니다 ㅠㅠ
우선 이런식으로 원문 문자열을 hex로 인코딩하는 함수를 구현해서 실행 후
이런식으로 출력하게까지는 혼자서 했습니다
그래서 이제 이 인코딩된 문자열을 다시 원문으로 디코딩 하는걸 혼자 해보려고 하는데 어디가 문제인건지를 잘 모르겠습니다 ㅠㅠ
이런식으로 짜보았는데요 이렇게 짠 이유는
이런식으로 임의로 값을 물리적으로 대입해서 my까지 찍히는걸 확인해서 반복문으로 바꾸려고하는데 오류가 납니다.
어느부분이 잘못되어있는지를 제가 아직 초보라 잘 못찾는거 같습니다 혹시 어디를 고쳐야 하는지 알려주실수 있으신가요 ㅠㅠ 부탁드립니다
어떤 오류가 나는지 알려주시면 확인해 볼 수 있을 것 같습니다.
일단 h2T 함수를 수정한 버전은 아래와 같습니다.
void h2T(char *hex_str, char *conv_str) { int i = 0; int sum = 0; int len = strlen(hex_str); while (i < len) { char c = hex_str[i]; if (c >= '0' && c <= '9') { sum = c - '0'; } else if (c >= 'A' && c <= 'F') { sum = c - 'A' + 10; } else if (c >= 'a' && c <= 'f') { sum = c - 'a' + 10; } if (i % 2 != 0) { conv_str[i / 2] = (char)sum; } i++; } conv_str[i / 2] = '\0'; }