我有这样的东西
char string[]="My name is %s";
printf("%s",string,"Tom");
我希望输出为
My name is Tom
,但我正在获取My name is %s
我尝试转义
%
字符,但效果不佳。这是怎么了我应该如何在
%s
中包含一个%s
? 最佳答案
试试这个
printf(string,"Tom");
您的方法存在的问题是-
一旦
printf
在格式字符串中看到%s
格式说明符,它将假定list中的下一个参数是字符指针指向的字符串,将其检索并打印以代替%s
。现在,printf
不会进行递归替换,因此%s
内部的string
保持不变,“ Tom”现在是一个多余的参数,将被丢弃。关于c - 在C中格式化说明符-%s中的%s,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10296801/