C语言提供了强大的内存操作功能,其中memchr函数可以直接从内存中抓取你需要的字符char.
memchr内存查找字符函数:主要用于从内存中查找自己需要的字符位置。
(1)函数原型:
(2)头文件
(3)功能:
(4)基础实例代码:
(5)输出情况:
(6)问题1:int _Val的取值范围0~255,可以超过吗?:
回答:不可以,int_Val的值对应是一字节二进制0000 0000~11111111的无符号数值,不可以超过否则会发生错误,程序直接奔溃,不是返回空指针。一般情况下用char表示,自动强制转换为int比较好。
实例代码:
运行情况:
(注意返回值,程序是直接奔溃,不是正常结束)
(7)问题2:用于字符串查找,不知道字符串长度怎么办?
回答:用strlen函数获取,不能像python那样用-1表示结尾,C语言中字符串不是对象没有被封装。
(8)问题3:对于'\0'能查找吗?
回答:可以,memchr针对的是一段内存,而不是一个字符串,只要二进制对于的值相等,就会返回。
(9)问题4:如果有两个重复的字符值,在查找范围内,返回哪一个?
回答:返回离const void *_Buf开头内存地址最近的字符地址。
示例代码:
运行情况:
(10)问题5:如果size_t _MaxCount范围超过字符串长度,或者在合法范围内没有找到符合的字符值,会返回什么?
回答:并不是返回空指针,经过测试,是直接奔溃。(在不同编译器也许实现不一样)
如若转载,请注明出处:https://www.ozabc.com/keji/345976.html