结果输出 中间是对的
根本原因:%.20s 约定了过来字符串的长度。
因为我的原料有问题 结尾不是0
https://blog.csdn.net/nopoppy/article/details/52589745
- #include<stdio.h>
- int main()
- {
- char a[] = {'1', '2', '3', '4'};
- char b[] = {'5', '6', '7', '8'};
- char buffer[10];
- sprintf(buffer, "%.4s%.4s", a, b);
- printf("%s\n", buffer);
- return 0;
- }
-
#include<stdio.h>
-
int main()
-
{
-
char a[] = {'1', '2', '3', '4'};
-
char b[] = {'5', '6', '7', '8'};
-
char buffer[10];
-
sprintf(buffer, "%.4s%.4s", a, b);
-
printf("%s\n", buffer);
-
return 0;
-
}
运行结果:
如果第二种情况的程序中,sprintf的format部分为"%4s%4s"或"%s%s",运行结果均为:
很莫名其妙吧~