strlen和strnlen以及strlen_s的区别是什么?分别在什么情况下使用?

最后还有个strnlen_s区别是什么啊?有点晕了。。。。
2025-03-01 15:11:01
推荐回答(1个)
回答1:

我这里怎么查不到strlen_s这个函数……
一般时候用strlen就好。strnlen比strlen多一个参数,就是数据总体长度,当检测到字符串长度比数据总体长度还长(就是给定数据长度范围内没有结束符'\0')时就会终止扫描。strnlen这个函数一般用于检测不可信的数据(如网络数据),因为这种数据中可能没有'\0',这时如果用strlen的话会一直扫描无法停止(直到越界触碰到无效内存),而strnlen限制住了扫描范围所以不会出事。