0

Please I want your help to write a C language code that print the Hexadecimal in for of string.

I was thing to do some thing like this :

main()
{

  char hex[]={ "00",    "01",   "02",   "03",   "04",   "05",   "06",   "07",   "08",   "09",   "0A",   "0B",   "0C",   "0D",   "0E",   "0F",..................., "FF"};

int Hex;

printf("\nEnter the Hex No.\n");
scanf("%d",&Hex);

printf("\n String value is:");
printf("%c",hex[Hex]);


}

But I got error from my compiler when I try to implement it in the initializing the string matrix , so could you tell me what is the problem or you may have better idea for this ??

Best regards

4

5 に答える 5

5

の配列を作成しますcharが、文字列 (つまりchar *) で初期化します。

タイプを次のように変更しますchar *

char *hex[] = { ... };

そしてそれはよりうまくいくはずです。

代わりに文字列を出力するには、出力を変更する必要もあります

printf("%s", hex[Hex]);

もちろん、16 進数を直接出力する方が簡単です。

printf("%02X", Hex);

その後、配列は必要ありません。

于 2013-01-10T18:44:52.077 に答える
1

あなたは間違った方法で初期化されています。実際の方法は

 char *hex[] ={"00","01","02" ....}
于 2013-01-10T18:48:18.583 に答える
0

ここで何をしようとしているのかよくわかりません...コードが示すように、ユーザーに16進数で値を入力させたい場合:

int Hex;

printf("\nEnter the Hex No.\n");//This tells me you want me to enter 12A4 (a hex value)

次に、16 進数値をスキャンする必要があります。

scanf("%x",&Hex);  // The %x tells scanf that the incoming value is base 16

ユーザーに 10 進数 (基数 10) で数値を入力してもらいたい場合は、必要な 16 進数で表示します。

int Hex;
printf("\nEnter the number to convert to Hex.\n");
scanf("%d",&Hex);

printf("\n String value is:");
printf("%#x",Hex);

"%#x"フォーマット文字列は次のフォーマットで値を表示することに注意してください: これは、自分で0x<number>を追加する必要がないので非常に便利です。0x

char配列をいじる必要はありません

于 2013-01-10T19:23:57.497 に答える
0

0x## 表記を使用して、C++ コードで文字を 16 進数で表すことができます。以下はコンパイルされます。

char hex[] = {0x01,0x02,...};
于 2013-01-10T18:44:41.523 に答える
0

を使用する必要がありますchar* hex[] = {...}

于 2013-01-10T18:45:52.373 に答える