为什么字符串连接在c ++中得到奇怪的结果?

时间:2013-08-23 20:49:31

标签: c++ string concatenation

我试图在C ++中连接两个字符串:

"G1-2" + "-%02d.jpg"

我得到以下结果:

G1-2-1537817269.jpg

为什么不是这样的结果:"G1-2-%02d.jpg"

1 个答案:

答案 0 :(得分:5)

疯狂猜测!

您正在通过

打印连接的字符串
printf(str);

其中str"G1-2-%02d.jpg"

printf("G1-2-%02d.jpg");
             ^^^^
//            but, where is corresponding integer in the following?

正如您所看到的,字符串中有%02dprintf将寻找整数参数。它找不到它并且发生了未定义的行为。在最好的情况下,它会用字符串打印出一个随机值。

如果我的猜测是真的,那么尝试以这种形式打印字符串:

printf("%s",str);

或使用双%作为Chis思想:

"G1-2-%%02d.jpg"