C语言之memchr函数

【FROM MSDN && 百科】

原型:  const void * memchr ( const void * ptr, int value, size_t num );
               void * memchr (       void * ptr, int value, size_t num );

#include<string.h>

从buf所指内存区域的前count个字节查找字符ch。

当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL。


DEMO:


//#define FIRST_DEMO
//#define SECOND_DEMO
#define MYMEMCHR
#ifdef FIRST_DEMO
#include <stdio.h>
#include <conio.h>

int main(void)
{
    char *pch;
	char str[]="Example string";
	pch=(char*)memchr(str,'p',strlen(str));
	if (pch!=NULL)
	{
		printf("'p' found at position %d.\n",pch-str+1);
	}
	else
	{
		printf("'p' not found .\n");
	}
	getch();
	return 0;
}
#elif defined SECOND_DEMO
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(void)
{
	char *ss="Hello,Programmers!\n";
	char *p;
	p=memchr(ss,'P',strlen(ss));
	if (p)
	{
		printf("%s\n",p);
	}
	else
	{
		printf("Not Found!\n");
	}
	getch();
	return 0;
}
#elif defined MYMEMCHR
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <assert.h>
void *mymemchar(void *buffer,int ch,size_t count);
int main(void)
{
	char *ss="Hello,Programmers!\n";
	char *p;
	p=(char *)memchr(ss,'P',strlen(ss)+1);
	if (p)
	{
		printf("%s\n",p);
	}
	else
	{
		printf("Not Found\n");
	}
	getch();
	return 0;
}
/*FROM: http://blog.chinaunix.net/uid-20480343-id-1941629.html */
void *mymemchar(void *buffer,int ch,size_t count)
{
	assert(NULL!=buffer);
	while(count && (*(unsigned char *)buffer != (unsigned char )ch))
	{
		buffer=(unsigned char *)buffer +1;
		count--;
	}
	return (count ? (void *)buffer:NULL);
}
#endif


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值