再前几篇的博客中大家可能发现了,strcpy,strcat,strcmp 这三个函数在使用时对源字符串没有长度限制,几乎是将源字符串的内容全部进行操作。在VS编译器中的这些函数显得不安全了,因此VS会提醒你在其后加上 _s ,或者在首行加上 #define _CRT_SECURE_NO_WARNINGS。
由于这些原因,C语言又引入了 strncpy,strncat,strncmp 等长度受限制的一组相对来说比较安全的函数。
strncpy的基本使用:
#define _CRT_SECURE_NO_WARNINGS
#include
#includeint main()
{char arr1[] = "abcdef";char arr2[5] = { 0 };strncpy(arr2, arr1, 3);printf("%s\n", arr2);return 0;
}
运行结果如下:
代码示例如下:
#define _CRT_SECURE_NO_WARNINGS
#include
#includeint main()
{char arr1[20] = "hello \0xxxxx";char arr2[] = "abcdef";strncat(arr1, arr2, 3);printf("%s\n", arr1);return 0;
}
运行结果如下:
strncat 可以自己给自己追加。
#define _CRT_SECURE_NO_WARNINGS
#include
#includeint main()
{char arr1[] = "abcdef";char arr2[] = "abc";int ret = strncmp(arr1, arr2, 3);printf("%d\n", ret);return 0;
}
运行结果如下:
当然在VS中 strcpy_s,strcat_s,strcmp_s 也可以用来作为长度受限的函数。
感谢大家能够看完这篇博客,创作时长,小伙伴们觉得我的博客对你有帮助,不妨留下你的点赞的收藏,关注我,带你了解不一样的C语言。