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 只是复制到地址(并覆盖)。使用strcatstrncat

于 2011-09-10T00:14:06.537 回答
3

我相信你想要strcat()而不是strcpy()

于 2011-09-10T00:14:24.043 回答