相关疑难解决方法(0)

有没有办法使用printf()指定要打印的字符串的字符数?

有没有办法指定要打印的字符串的字符数(类似于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

c c++ printf

109
推荐指数
5
解决办法
10万
查看次数

用于将固定长度缓冲区复制到结构中的memcpy

我有这个示例代码:

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影响与空字符终止相关的任何事情或者有其他意外的与记忆相关的后果吗?

c

4
推荐指数
1
解决办法
5098
查看次数

标签 统计

c ×2

c++ ×1

printf ×1