0
문자열 포인터를 변환하려고합니다 (문자열 ^이 문자열 포인터입니까?)를 2 자리 16 진수 문자열로 변환하려고합니다.
저는 sprintf를 사용하여 16 진수 값을 버퍼에 출력하고 hexdump char 배열 secretHex에 복사하여 작업합니다.
그러나 char 배열을 String으로 변환 할 수 없어 변환 된 문자열을 printf로 출력 할 때 'True'만 표시됩니다.
누군가가 나에게 무슨 일이 일어나고 있는지 아이디어를 줄 수 있습니까?
결과 문자열을 초기 문자열^secretKey로 인쇄 할 수 있기를 원합니다.
감사합니다.문자열을 16 진수 문자열로 변환
String^ secretKey = "1122334455667788";
printf("1. %s\n", secretKey);
int n = 0;
char buffer1[17], buffer2[3], secretHex[33];
sprintf_s(buffer1, "%s", secretKey);
while (n < sizeof(buffer1) - 1) {
char value = buffer1[n];
sprintf_s(buffer2, "%02x", value);
secretHex[2 * n] = buffer2[0];
secretHex[2 * n + 1] = buffer2[1];
n++;
}
secretHex[sizeof(secretHex)-1] = '\0';
printf("The secretHex key is %s\n", secretHex);
String^ hex = System::Convert::ToString(secretHex);
printf("2. %s\n", hex);
//OUTPUT
1. 1122334455667788
The secretHex key is 31313232333334343535363637373838
2. True
이것은 C++이 아닙니다. –
어떤 언어를 사용해야합니까? 나는 다른 누군가의 작업에 기초를 쌓기 위해 주로 C++에 대해 연구 해왔다. 감사! –
String을 사용하는 이유 ^는 String^객체를 가져 와서 변환으로 돌아 왔기 때문에 현재 C와 비슷한 언어로 녹슬 었습니다. 오래 동안 만지지 마세요. –