出于某种原因,我的sprintf
调用正在影响我用来格式化新字符串的字符串。这是我的代码:
string foo = "bar";
char salt[] = "";
sprintf(salt, "%c%c", foo[0], foo[1]);
当我尝试在foo
之后打印sprintf
时,它没有任何价值。如果我在sprintf之前打印它,那很好。
答案 0 :(得分:1)
您的结果缓冲区(salt
)太小而无法保存该值。
string foo = "bar";
char salt[3] = "";
sprintf(salt, "%c%c", foo[0], foo[1]);