我正在解码由占位符分隔的cpu操作码及其参数。
通过提供myop a0
sprintf(dest, "%-16s%s", opcode, arg);
但是当我的操作码由几个单元组成时,例如myop.w.s a0
,其中前3个单元需要位于占位符的左侧,并且arg跟随它,是什么让他们表现得像这里
sprintf(dest, "%s.%s.%s\t\t%s", opcode, param1, param2, arg);
但没有使用标签?
还有一种方法可以sprintf()
两次,首先我创建一个组合字符串"myop.w.s"
,然后在第二个sprintf()
我填充它,但我很好奇是否有其他解决方案。
答案 0 :(得分:2)
根据需要打印前3个字符串和间距
snprintf(dest, 16, "%s.%s.%s%16s", opcode, param1, param2, "");
strcpy(dest + 16, arg);