问题是如果我使用strlen()并且字符串结果不是以null结尾,则程序在读取超出缓冲区结束时会运行到未定义的行为.所以我想要一个像下面这样的函数:
size_t strlenUpTo( char* buffer,size_t limit ) { size_t count = 0; while( count < limit && *buffer != 0 ) { count++; buffer++; } return count; }
所以它返回字符串的长度,但从不尝试读取超出缓冲区的结束.
C库中是否已有这样的功能,还是我必须使用自己的功能?
解决方法 使用memchr(字符串,限制),如:size_t strlenUpTo(char *s,size_t n){ char *z = memchr(s,n); return z ? z-s : n;}总结
以上是内存溢出为你收集整理的是否有标准的C函数来计算字符串长度达到某个限制?全部内容,希望文章能够帮你解决是否有标准的C函数来计算字符串长度达到某个限制?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)