我正在尝试解析汇编命令,并且在某种情况下我需要生成一个随机数并将其添加到char数组中。 例如:
IEnumerable<T>
我有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'
'的值附加到srcOp,但我得到运行时错误或编译错误。
答案 0 :(得分:1)
我认为我有两个解决方案:
(*srcOp)=sprintf("mov #%d, r0",i);
或者:
(*srcOp)="mov ";
(*srcOp)=strcat((*srcOp),itoa(i));
(*srcOp)=strcat((*srcOp),",r0");
以上其中一项可以帮到你。
答案 1 :(得分:1)
确定您将创建的最大随机数。 调整src0p的大小以匹配“#”
的最大随机数+1的字符串表示形式sprintf将输出您的号码的格式化字符串表示。 在这里,我用前导零格式化了数字。
int main (void)
{
char src0p[6];
int i;
i = 999;
sprintf(src0p, "#%04d", i);
printf("%s\n", src0p);
}
输出如下所示:#0999