有没有办法指定要打印的字符串的字符数(类似于ints中的小数位)?
printf ("Here are the first 8 chars: %s\n", "A string that is more than 8 chars");
Run Code Online (Sandbox Code Playgroud)
想要打印: Here are the first 8 chars: A string
我有这个示例代码:
struct
{
char a[2];
char b[2];
} buff;
char buffer1[5] = "ABCD";
Run Code Online (Sandbox Code Playgroud)
要复制buffer1到结构成员,我这样做:
char c[3],d[3];
memcpy(&buff,buffer1,4);
sprintf(c,"%2.2s",buff.a);
sprintf(d,"%2.2s",buff.b);
printf("c=%s,d=%s",c,d);
Run Code Online (Sandbox Code Playgroud)
当我打印变量c和d时,我正确地将c和d变量中的值变为:c="AB"和c="CD".
那么我的问题是,即使我正确地获得输出,也会memcpy影响与空字符终止相关的任何事情或者有其他意外的与记忆相关的后果吗?