2011-09-29 2 views
0

나는 MSVC++ 2010 Express를 사용하고, 나는어떻게하면 0x70, 0x61, 0x73 ... 등을 Pas ... 등으로 변환 할 수 있습니까? C++에서는?

BYTE Key[] = {0x50,0x61,0x73,0x73,0x77,0x6F,0x72,0x64}; 

은 "암호"나는 이렇게 문제가 많은 데로 변환하는 방법을 알고 싶어요. :(나는 ... 같은 물건을 가지고하는

BYTE Key[] { 0xC2, 0xB3, 0x72, 0x3C, 0xC6, 0xAE, 0xD9, 0xB5, 0x34, 0x3C, 0x53, 0xEE, 0x2F, 0x43, 0x67, 0xCE }; 

및 기타 다양한 변수를이 기술을 사용하고 적절하게 변환합니다.

이드 숯불에 저장 "암호"로 끝날 것을 좋아합니다.

.
+0

ummmm 16 진수를 ASCII로 변경 하시겠습니까? –

+0

어떤 유형으로 끝내시겠습니까? 'std :: string'? 'const char *'? 뭐? – icktoofay

+2

@BalaR 문자열이 null로 끝났다고 가정 할 때 작동하지 않습니다. 그가 게시 한 비용으로 판단하면 그렇지 않습니다. – Pablo

답변

1

이 부족 모두는 널 (NULL) 종료합니다.

2

키 바이트의 배열입니다 당신이 string에 저장하는 경우, 예를 들어, 당신은 그것의 범위 생성자를 사용하여 문자열을 구성해야한다, 즉 :

string key_string(Key, Key + sizeof(Key)/sizeof(Key[0])); 

아니면 사용하여 컴파일 할 경우 C++ 11 :

char* key_string = strndup(Key, sizeof(Key)/sizeof(Key[0])); 

을 그러나 C++ I를 사용하는 경우 :

string key_string(begin(Key), end(Key)); 

char* 내가 strndup을 C의 길을 가서 사용하십시오 얻으려면 강력하게 당신이 char* 대신 string을 사용하고 절대적으로 필요한 경우에만 char const*으로 변환 할 것을 강력하게 권장합니다 (예. C API를 호출 할 때). std::string을 선호하는 정당한 이유는 here을 참조하십시오.

char Key_str[(sizeof Key)+1]; 
memcpy(Key_str,key,sizeof Key); 
Key_str[sizeof Key] = '\0'; 

Key_str 정기적 숯불 * 스타일의 문자열로 사용할 수있을 것입니다 :이 작업을 수행 한 후, 그래서

+0

답변 주셔서 감사합니다, 나는 char하지만 그것을 저장하고 싶습니다. – user954753