No.17687![]() |
Hexデータから文字型への変換 投稿者---電話番(2004/11/01 17:47:27) |
||
いつもお世話になっています。 すごく初歩的なことかも知れないのですが 16進数の戻り値を文字型に変換し配列に格納するにはどのように したらいいか分かりません。 #include "stdafx.h" void hexprint(unsigned char*,unsigned char *); int main(int argc, char* argv[]) { unsigned char buf2[15]; unsigned char pstr[]={0x12,0xaf,0x89,'\0'}; hexprint(pstr,buf2); printf("%c",buf2); return 0; } void hexprint(unsigned char* strhex,unsigned char* outp) { unsigned char shift; unsigned char upstr; unsigned char downstr; int i,j; while(*strhex!='\0') { shift = *strhex; upstr = (shift >>4); *outp = upstr + '0'; outp++; downstr= (shift & 0x0f); *outp = downstr + '0'; printf("%c =",*outp); /*変換を見るために出力*/ printf("%x \n\n ",*outp); outp++; strhex++; }; }; なのですが、Hexprintという関数では無条件に'0'を足して 文字列に変換しているのですが、a以降うまく行きません。 どなたかご教授願えますでしょうか。 |
No.17689![]() |
Re:Hexデータから文字型への変換 投稿者---επιστημη(2004/11/01 17:51:47) |
||
× *outp = upstr + '0'; ○ *outp = "0123456789abcdef"[upstr]; もう一箇所も同様。 |
No.17691![]() |
Re:Hexデータから文字型への変換 投稿者---電話番(2004/11/01 17:57:13) |
||
早速やってみました!! すごいです!出来ました! ありがとうございました。 |
No.17697![]() |
Re:Hexデータから文字型への変換 投稿者---nop(2004/11/01 21:12:58) |
||
sprintf()ではだめなの? |
No.17711![]() |
Re:Hexデータから文字型への変換 投稿者---電話番(2004/11/02 09:15:40) |
||
ご返答ありがとうございます。 sprintfでもできました! ソースは16進から文字列への変換個所が sprintf((char*)outp,"%x",upstr); でも出来ました。 επιστημηさん、nopさん ありがとうございました。 |