在vsnprintf中添加一个字符串

时间:2015-12-15 18:13:43

标签: c

我有以下功能:

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。我怎样才能实现这一目标?感谢。

1 个答案:

答案 0 :(得分:3)

将字符串放在字符串的开头:

string[0] = 'X';

然后填充字符串的剩余部分。它的地址大1:

vsnprintf(&string[1], 255, fmt, str);

或(相同)

vsnprintf(string + 1, 255, fmt, str);

这里我使用的是255而不是256(由Andrew Henle注意的bugfix)作为要填充的字符串的最大长度,因为已经填充了一个字节。