【问题标题】:adding int to char array in C [closed]在C中将int添加到char数组[关闭]
【发布时间】:2026-01-29 13:45:02
【问题描述】:

我正在尝试解析汇编命令,在某些情况下我需要生成一个随机数并将其添加到 char 数组中。 示例:

mov #(random number), r0

我有char* srcOp

现在我尝试做这样的事情:

int i;
time_t t;

srand((unsigned) time(&t));
i = rand() % 100;
(*srcOp)='#';
// append here i to srcOp . Supopse i is 39 -> srcOp should contain '#39'

现在我需要将 'i' 的值附加到 srcOp,但我得到运行时错误或编译错误。

【问题讨论】:

  • @MikeCAT 这个问题看起来很完整——包括所需的结果。 OP 需要将数字“i”的字符串表示形式添加到字符串 srcOP。 OP 已经接受了一个答案,所以保持对任何人都没有帮助。

标签: c arrays char int


【解决方案1】:

决定您将创建的最大随机数。 大小 src0p 以匹配 '#' 的最大随机数 +1 的字符串表示

sprintf 将输出您的号码的格式化字符串表示形式。 这里我用前导零格式化了数字。

int main (void)
{
    char src0p[6];
    int i;

    i = 999;
    sprintf(src0p, "#%04d", i);

    printf("%s\n", src0p);
}

输出如下所示:#0999

【讨论】:

    【解决方案2】:

    我想我有两个解决方案:

     (*srcOp)=sprintf("mov #%d, r0",i);
    

    或者:

    (*srcOp)="mov ";
    (*srcOp)=strcat((*srcOp),itoa(i));
    (*srcOp)=strcat((*srcOp),",r0");
    

    以上其中一项会对您有所帮助。

    【讨论】: