数字をローマ数字に変換する関数を作成しました。変換自体のロジックは正しいことはわかっていますが、strncpyが呼び出されるたびに、以前の「rom」の値が上書きされます。私はそれを続けて呼び出すことさえ試みました、そしてそれは後者だけを返しました。
コードの抜粋は次のとおりです。
char* rom = (char*) calloc (10,sizeof(char));
while(intval>=1000){
intval -= 1000;
strncpy(rom,"M",2);
}
callocを使用することも問題の一部かもしれませんが、mallocを使用してみたところ、同じ結果が得られました。