技术问询:printf("C programming %s","is %s for health","good");能否输出指定内容
你的printf写法达不到预期效果哦
首先得给你纠正一个误解:C语言里的printf可不是这么工作的,它不会自动嵌套替换参数里的格式符。咱们来拆解你的代码:
printf("C programming %s","is %s for health","good");
- 第一个参数是格式控制字符串,里面只有1个
%s占位符; - 后面的参数是用来填充这些占位符的,数量需要和占位符对应(如果参数多了,多余的会被直接忽略)。
所以这段代码的实际执行逻辑是:用第二个参数"is %s for health"去替换格式字符串里的那个%s,第三个参数"good"根本不会被处理。最终输出会是:
C programming is %s for health
如果想要得到C programming is good for health,有几种更直接的正确写法:
- 直接输出完整字符串:
printf("C programming is good for health"); - 用两个
%s占位符对应两个参数:printf("C programming %s %s for health", "is", "good");
内容的提问来源于stack exchange,提问作者shashi kumar
相关产品推荐
相关产品推荐

