说明
strcpy() sprintf() strcat() 存在安全隐患, 其对应的安全版为:
strncpy() snprintf() strncat()
snprintf(s, 100, "%.*S", 3, "abcd");
s的值为abc
%.*s 表示有两项, 第一项指定了长度,第二项则是%s的内容,所以取前三位
编辑本段例子
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
int main()
{
char str[10]={0,};
snprintf(str, sizeof(str), "0123456789012345678");
printf("str=%s/n", str);
return 0;
}
{
char str[10]={0,};
snprintf(str, sizeof(str), "0123456789012345678");
printf("str=%s/n", str);
return 0;
}
运行结果:str=012345678
编辑本段头文件
<stdio.h>
[1]
本文介绍了使用strncpy(), snprintf()和strncat()等安全版本的字符串操作函数来避免潜在的安全隐患。通过具体的代码示例展示了如何限制字符串复制和格式化输出的最大长度。
672

被折叠的 条评论
为什么被折叠?



