整数が char 配列でどのように扱われるかを知りたいです。たとえば、文字列値などに使用する単一の文字にscanf()
&関数を使用する場合、整数で char 配列を出力するために使用しました。ただし、出力としていくつかのジャンク文字が出力されます。printf()
"%c"
"%s"
"%s"
質問する
205 次
2 に答える
0
各電話番号の長さが同じであることがわかっている場合は、番号の前にゼロを埋め込むことができます。たとえば、各数値を 10 桁にパディングし、必要に応じて前に 0 を入れます。
int d = 123456789;
printf("%d\n", d); // prints 123456789
printf("%010d\n", d); // prints 0123456789
d = 12345678;
printf("%010d\n", d); // prints 0012345678 :-(
コードを見ずに要件を推測するのは困難です。printf を使用したフォーマットの例はたくさんあります。例: http://www.codingunit.com/printf-format-specifiers-format-conversions-and-formatted-output
于 2013-09-09T21:17:49.137 に答える
0
整数変数を直接操作する場合は、次のように簡単です。
int i = 7;
printf("%d", i);
char*
文字の配列を操作しているときに、 <->間の変換を行うヘルパー関数を作成int
して、より移植性の高いソリューションにすることができます。
int toInt(unsigned char* p) {
return *(p + 0) << 24 | *(p + 1) << 16 | *(p + 2) << 8 | *(p + 3);
}
...
unsigned char arr[4] = {0,0,0,4};
int i = toInt(&arr[0]);
printf("%d", i);
印刷する必要があります4
または、単純なキャストを使用することもできます。
unsigned char arr[4] = {0,0,0,4};
int* i = &arr[0];
printf("%d", *i);
しかし、その解決策はエンディアンに依存します。ideone.com では、印刷され67108864
ます。
于 2013-09-09T07:04:39.840 に答える