C语言%.4s是什么意思?

结果是a bo,求解释

接%之后的字符决定具体格式类型;之后的参数是代入格式控制字符串的内容,第n+1个参数和格式字符串中出现(如果存在)的第n个%(不包含紧接在其它%之后的,它会被当做一个非格式的百分号)的位置对应。%*表示*会被替换为一个整数,这个整数在格式字符串之后的参数列表中。所以printf("%*c%.*s\n",3,' ',4,"*************");等价于printf("%3c%.4s\n",' ',"*************");。c指定输出一个字符,s指定输出一个char*指针表示的字符串。%和后面的c/s等控制字符之间可以有形式如“m.n”或“m”的输出宽度控制:正整数m表示输出字符数不得小于m,否则在左边补充空格(负整数取绝对值,如果需要的话在右边补空格);n表示按小数输出(%e、%f、%lf、%llf、%g等)时,保留小数点后的字符数(对于%s则是从头开始截取,但m存在时效果会被覆盖)。%和c之间有一个正整数,说明输出宽度,如果输出字符数不足这个整数则在左边补足空格。由于%3c对应字符为' ',所以%3c输出三个空格。%.4s对应了字符串"*************",输出前4个*。于是最终的输出结果是“ ****”。
====
[原创回答团]
另外,站长团上有产品团购,便宜有保证
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-14

4s店是集整车销售,售后服务,零配件,信息反馈于一身的一站式服务!但是4s店是由投资人向厂商申请,厂商给予授权以后才可以运营的!

第2个回答  2011-04-11
输出字符串的一部分,从头开始长度为4,所以结果为 "a boo" 不含引号。
第3个回答  2011-04-11
因为你是按照%.4s输出的,把.4s去掉.
直接是printf("%s",a);
第4个回答  2011-04-11
显示数组前面 4个字符 %是格式符 4是个数 S 字符