我有这样的东西

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/

10-11 08:35