我有以下功能:
void printerror(char *fmt, ...) {
char string[256];
va_list str;
va_start(str, fmt);
vsnprintf(string, 256, fmt, str);
va_end(str);
}
我想在vsnprintf的字符串变量的开头添加一个const char。我怎样才能实现这一目标?感谢。
答案 0 :(得分:3)
将字符串放在字符串的开头:
string[0] = 'X';
然后填充字符串的剩余部分。它的地址大1:
vsnprintf(&string[1], 255, fmt, str);
或(相同)
vsnprintf(string + 1, 255, fmt, str);
这里我使用的是255而不是256(由Andrew Henle注意的bugfix)作为要填充的字符串的最大长度,因为已经填充了一个字节。