-4

私は C を使用する初心者です。2 つの整数を 1 に結合したいと考えています。サンプル コードを参照してください。

#include <stdio.h>

int main()
{
    int age[4];
    int mouse[4];
    mouse[0]=50;
    age[0]=23;

    age[1]=mouse[0]age[0];

    printf("%d",age[1]);
    return 0;
}

ご覧のとおり、マウス [0] に 50、年齢 [0] に 23 があり、年齢 [1] を 5023 にしたいと考えています。

これを行う最も簡単な方法は何ですか? これは大きなコードの一部になるので、シンプルに保ちたいと思います。そして、ばかげた変数名を許してください!

皆さんありがとう!

4

5 に答える 5

0

OPは文字列の連結を行っているため、テキストに変換し、連結してからに戻しintます。

char buf1[64+64];
char buf2[64];
sprintf(buf1, "%d", mouse[0]);
sprintf(buf2, "%d", age[0]);
strcat(buf1, buf2);
age[1] = atoi(buf1);

intテキストに変換する方法はいくつかありますが、sprintf()簡単なものは便利なものです。また、テキストをint. -符号とバッファ オーバーフローに注意する必要があります。

于 2013-09-13T20:47:37.630 に答える
0

2 つの int のテキスト表現を連結することに興味があるようです。

int mouse = 50;
int age = 23;

char combi[BUFSIZ];/*char array to contain the "combination"*/

/*print two ints together in one c-string*/
snprintf(combi, BUFSIZ, "%d%d", mouse,age);
printf("value = %s\n", combi); /*print as string*/

これはvalue = 5023端末に表示されます。一部のインタープリター言語では、文字列をより簡単に連結でき、テキスト表現と数値表現が自動的に変換されますが、C ではこれを非常に慎重に行う必要があります。

于 2013-09-13T20:56:02.613 に答える
0

age[1]=mouse[0]age[0];2 つの数値 (たとえば 2 桁) の大きさを常に確認できるage[1]=mouse[0]+age[0]; 場合は、100 を掛けて桁をシフトします。age[1]=mouse[0] * 100 + age[0];

正確な桁がわからない場合は、log10 を使用して値をどれだけシフトする必要があるかを計算できます。

age[1] = mouse[0] * (int)pow(10, (int)log10(age[0])) + age[0];

于 2013-09-13T20:20:44.067 に答える