3

数字をローマ数字に変換する関数を作成しました。変換自体のロジックは正しいことはわかっていますが、strncpyが呼び出されるたびに、以前の「rom」の値が上書きされます。私はそれを続けて呼び出すことさえ試みました、そしてそれは後者だけを返しました。

コードの抜粋は次のとおりです。

   char* rom = (char*) calloc (10,sizeof(char));

    while(intval>=1000){
        intval -= 1000;
    strncpy(rom,"M",2);
    }

callocを使用することも問題の一部かもしれませんが、mallocを使用してみたところ、同じ結果が得られました。

4

2 に答える 2

11

追加したいのですが、strcpyはアドレスにコピーするだけです(そして上書きします)。使用strcatまたはstrncat

于 2011-09-10T00:14:06.537 に答える
3

私はあなたが望むstrcat()と信じていますstrcpy()

于 2011-09-10T00:14:24.043 に答える