0

整数が char 配列でどのように扱われるかを知りたいです。たとえば、文字列値などに使用する単一の文字にscanf()&関数を使用する場合、整数で char 配列を出力するために使用しました。ただし、出力としていくつかのジャンク文字が出力されます。printf()"%c""%s""%s"

4

2 に答える 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 に答える