You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何printf("%-13s\n", name);无法按预期截断字符串?

问题分析与解决

你搞混了printf格式符里数字的作用——%-13s中的13是最小输出宽度,不是最大截断长度。意思是如果字符串长度小于13,会用空格补到13个字符(因为-是左对齐);如果字符串更长,就会完整输出所有字符,不会截断。

要实现截断字符串到指定长度输出,需要用精度控制,格式符写成%.13s(默认右对齐),如果要左对齐同时截断,就用%-13.13s。

修改你的代码中的printf语句即可:

printf("%-13.13s\n", name);

如果不需要对齐,仅需截断输出,直接用:

printf("%.13s\n", name);

内容的提问来源于stack exchange,提问作者Ryan Ta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 22:39:49