-
由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制。
原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);用法:
#include <string.h>说明:
返回指向字符ch后的第一个字符的指针,如果src前n个字节中不存在ch则返回NULL。ch被复制。举例:
// memccpy.c
//#include <syslib.h>
//#include <stdio.h>
#include <conio.h>
#include <string.h>
main()
{
char *s="Golden Global View";
char d[20],*p;
clrscr(); //Clear screen
p=memccpy(d,s,'x',strlen(s));
if(p)
{
*p='\0'; // MUST Do This
printf("Char found: %s.\n",d);
}
else
printf("Char not found.\n");
getchar();
return 0;
}
- 从buf所指内存区域的前count个字节查找字符ch
原型:
extern void *memchr(void *buf, char ch, unsigned count);
用法:
#include <string.h>
说明:
当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL。
举例:
// memchr.c
//#include <syslib.h>
#include <stdio.h>
//#include <conio.h>
#include <string.h>
main()
{
char *s="Hello, Programmers!";
char *p;
clrscr(); //Clear screen
p=memchr(s,'P',strlen(s));
if(p)
printf("%s",p);
else
printf("Not Found!");
getchar();
return 0;
}
- 比较内存区域buf1和buf2的前count个字节但不区分字母的大小写
原型:
extern int memicmp(void *buf1, void *buf2, unsigned int count);
用法:
#include <string.h>
说明:
memicmp同memcmp的唯一区别是memicmp不区分大小写字母。
当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0
举例:
// memicmp.c
//#include <syslib.h>
#include <stdio.h>
//#include <conio.h>
#include <string.h>
main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
clrscr();
r=memicmp(s1,s2,strlen(s1));
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");
getchar();
return 0;
}
- 由src所指内存区域复制count个字节到dest所指内存区域
原型:
extern void *memmove(void *dest, const void *src, unsigned int count);
用法:
#include <string.h>
说明:
src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。
举例:
// memmove.c
//#include <syslib.h>
#include <stdio.h>
//#include <conio.h>
#include <string.h>
main()
{
char *s="Golden Global View";
clrscr();
memmove(s,s+7,strlen(s)-7);
s[strlen(s)-7]=0;
printf("%s",s);
getchar();
return 0;
}
-
由src所指内存区域复制count个字节到dest所指内存区域
原型:extern void movmem(void *src, void *dest, unsigned int count);用法:
#include <string.h>说明:
src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。举例:
// movmem.c
//#include <syslib.h>
#include <stdio.h>
//#include <conio.h>
#include <string.h>
main()
{
char *s="Golden Global View";
clrscr();
movmem(s,s+7,strlen(s)-7);
s[strlen(s)-7]=0;
printf("%s",s);
getchar();
return 0;
}
本文深入讲解了C语言中处理字符串的多种函数,包括memccpy、memchr、memicmp、memmove和movmem的使用方法及示例,帮助读者掌握高效、安全地操作内存区域的技巧。
434

被折叠的 条评论
为什么被折叠?



