Hi!请登陆

用C语言从内存中抓你想要的字符!memchr()函数

2021-2-3 30 2/3

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范围超过字符串长度,或者在合法范围内没有找到符合的字符值,会返回什么?

回答:并不是返回空指针,经过测试,是直接奔溃。(在不同编译器也许实现不一样)

相关推荐