牛骨文教育服务平台(让学习变的简单)
博文笔记

字符处理函数

创建时间:2006-12-17 投稿人: 浏览次数:127

选定要查看的函数

bcmp bcopy bzero memccpy memchr memcmp memcpy memicmp memmove memset movmem setmem stpcpy strcat strchr strcmp strcmpi strcpy strcspn strdup stricmp strlen strlwr strncat strncmp strncmpi strncpy strnicmp strpbrk strrev strset strstr strtok strupr

目前共有34个函数

bcmp返回顶端
原型:extern int bcmp(const void *s1, const void *s2, int n);
用法:#include <string.h >
功能:比较字符串s1和s2的前n个字节是否相等
说明:如果s1=s2或n=0则返回零,否则返回非零值。bcmp不检查NULL。
举例:
// bcmp.c
#include <syslib.h >
#include <string.h >
main()
{
char *s1="Golden Global View";
char *s2="Golden global view";;
clrscr(); // clear screen
if(!bcmp(s1,s2,7))
printf("s1 equal to s2 in first 7 bytes");
else printf("s1 not equal to s2 in first 7 bytes");
getchar();
clrscr();
if(!bcmp(s1,s2,12))
printf("s1 equal to s2 in first 12 bytes");
else
printf("s1 not equal to s2 in first 12 bytes");
getchar();
return 0;
}
相关函数:bcopy,bzero


bcopy返回顶端
原型:extern void bcopy(const void *src, void *dest, int n);
用法:#include <string.h>
功能:将字符串src的前n个字节复制到dest中
说明:bcopy不检查字符串中的空字节NULL,函数没有返回值。
举例:
// bcopy.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
char d[20];
clrscr(); // clear screen
bcopy(s,d,6);
printf("s: %s/n",s);
printf("d: %s/n",d);
getchar();
clrscr();
s[13]=0;
bcopy(s+7,d,11); // bcopy ignore null in string
printf("%s/n",s+7);
for(i=0;i<11;i++)
putchar(d[i]);
getchar();
return 0;
}
相关函数:bcmp,bzero


bzero返回顶端
原型:extern void bzero(void *s, int n);
用法:#include <string.h>
功能:置字节字符串s的前n个字节为零。
说明:bzero无返回值。
举例:
// bzero.c
#include <syslib.h>
#include <string.h>>
main()
{
struct
{
int a;
char s[5];
float f;
} tt;
char s[20];
bzero(&tt,sizeof(tt)); // struct initialization to zero
bzero(s,20);
clrscr();
printf("Initail Success");
getchar();
return 0;
}
相关函数:bcmp,bcopy


memccpy返回顶端
原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);
用法:#include <string.h>
功能:由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制。
说明:返回指向字符ch后的第一个字符的指针,如果src前n个字节中不存在ch则返回NULL。ch被复制。
举例:
// memccpy.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
char d[20],*p;
clrscr();
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;
}
相关函数:memcpy,strcpy


memchr返回顶端
原型:extern void *memchr(void *buf, char ch, unsigned count);
用法:#include <string.h>
功能:从buf所指内存区域的前count个字节查找字符ch。
说明:当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL。
举例:
// memchr.c
#include <syslib.>
#include <string.h>
main()
{
char *s="Hello, Programmers!";
char *p;
clrscr();
p=memchr(s,"P",strlen(s));
if(p)
printf("%s",p);
else
printf("Not Found!");
getchar();
return 0;
}
相关函数:memccpy,memmove,strcpy


memcmp返回顶端
原型:extern int memcmp(void *buf1, void *buf2, unsigned int count);
用法:#include <string.h>
功能:比较内存区域buf1和buf2的前count个字节。
说明:
当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0
举例:
// memcmp.c
#include <syslib.h>
#include <string.h>
main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
clrscr();
r=memcmp(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;
}
相关函数:memicmp,strcmp


memcpy返回顶端
原型:extern void *memcpy(void *dest, void *src, unsigned int count);
用法:#include <string.h>
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
举例:
// memcpy.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
char d[20];
clrscr();
memcpy(d,s,strlen(s));
d[strlen(s)]=0;
printf("%s",d);
getchar();
return 0;
}
相关函数:memccpy,memmove,strcpy


memicmp返回顶端
原型:extern int memicmp(void *buf1, void *buf2, unsigned int count);
用法:#include <string.h>
功能:比较内存区域buf1和buf2的前count个字节但不区分字母的大小写。
说明:memicmp同memcmp的唯一区别是memicmp不区分大小写字母。
当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0
举例:
// memicmp.c
#include <syslib.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;
}
相关函数:memcmp,stricmp


memmove返回顶端
原型:extern void *memmove(void *dest, const void *src, unsigned int count);
用法:#include <string.h>
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。
举例:
// memmove.c
#include <syslib.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;
}
相关函数:memccpy,memcpy,strcpy


memset返回顶端
原型:extern void *memset(void *buffer, int c, int count);
用法:#include <string.h>
功能:把buffer所指内存区域的前count个字节设置成字符c。
说明:返回指向buffer的指针。
举例:
// memset.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
clrscr();
memset(s,"G",6);
printf("%s",s);
getchar();
return 0;
}
相关函数:bzero,setmem,strset


movmem返回顶端
原型:extern void movmem(void *src, void *dest, unsigned int count);
用法:#include <string.h>
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针。
举例:
// movmem.c
#include <syslib.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;
}
相关函数:memmove


setmem返回顶端
原型:extern void setmem(void *buf, unsigned int count, char ch);
用法:#include <string.h>
功能:把buf所指内存区域前count个字节设置成字符ch。
说明:返回指向buf的指针。
举例:
// setmem.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
clrscr();
setmem(s,6,"G");
printf("%s",s);
getchar();
return 0;
}
相关函数:bzero,memset,strset


stpcpy返回顶端
原型:extern char *stpcpy(char *dest,char *src);
用法:#include <string.h>>
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest结尾处字符(NULL)的指针。
举例:
// stpcpy.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
char d[20];
clrscr();
stpcpy(d,s);
printf("%s",d);
getchar();
return 0;
}
相关函数:strcpy


strcat返回顶端
原型:extern ch<string.h>
功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的"/0")并添加"/0"。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
举例:
// strcat.c
#include <syslib.h>
#include <string.h>
main()
{
char d[20]="Golden Global";
char *s=" View";
clrscr();
strcat(d,s);
printf("%s",d);
getchar();
return 0;
}
相关函数:strncat


strchr返回顶端
原型:extern char *strchr(char *s,char c);
用法:#include <string.h>>
功能:查找字符串s中首次出现字符c的位置
说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。
举例:
// strchr.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
char *p;
clrscr();
strchr(s,"V");
if(p)
printf("%s",p);
else
printf("Not Found!");
getchar();
return 0;
}
相关函数:memchr


strcmp返回顶端
原型:extern int strcmp(char *s1,char * s2);
用法:#include <string.h>
功能:比较字符串s1和s2。
说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
举例:
// strcmp.c
#include <syslib.h>
#include <string.h>
main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
clrscr();
r=strcmp(s1,s2);
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;
}
相关函数:bcmp,memcmp,stricmp,strncmp


stricmp,strcmpi返回顶端
原型:extern int stricmp(char *s1,char * s2);
用法:#include <string.h>>
功能:比较字符串s1和s2,但不区分字母的大小写。
说明:strcmpi是到stricmp的宏<0
当s1>s2时,返回值>0
举例
// stricmp.c
#include <syslib.h>
#include <string.h>>
main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
clrscr();
r=stricmp(s1,s2);
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;
}
相关函数:bcmp,strcmp,stricmp


strcpy返回顶端
原型:extern char *strcpy(char *dest,char *src);
用法:#include <string.h>
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
举例:
// strcpy.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
char d[20];
clrscr();
strcpy(d,s);
printf("%s",d);
getchar();
return 0;
}
相关函数:memccpy,memcpy,stpcpy,strdup


strcspn返回顶端
原型:extern int strcspn(char *s1,char *s2);
用法:#include <string.h>
功能:在字符串s1中搜寻s2中所出现的字符。
说明:返回第一个出现的字符在s1中的下标值,亦即在s1中出现而s2中没有出现的子串的长度。
举例:
// strcspn.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
char *r="new";
int n;
clrscr();
n=strcspn(s,r);
printf("The first char both in s1 and s2 is: %c",s[n]);
getchar();
return 0;
}
相关函数:strpbrk


strdup返回顶端
原型:extern char *strdup(char *s);
用法:#include <string.h>
功能:复制字符串s
说明:返回指向被复制的字符串的指针,所需空间由malloc()分配且可以由free()释放。
举例:
// strdup.c
#include<syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
char *d;
clrscr();
d=strdup(s);
printf("%s",d);
getchar();
return 0;
}
相关函数:memccpy,memcpy,strcpy


strlen返回顶端
原型:extern int strlen(char *s);
用法:#include <string.h>
功能:计算字符串s的长度
说明:返回s的长度,不包括结束符NULL。
举例:
// strlen.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
clrscr();
printf("%s has %d chars",s,strlen(s));
getchar();
return 0;
}
相关函数:无


strlwr返回顶端
原型:extern char *strlwr(char *s);
用法:#include <string.h>
功能:将字符串s转换为小写形式
说明:只转换s中出现的大写字母,不改变其它字符。返回指向s的指针。
举例:
// strlwr.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Copywrite 1999-2000 GGV Technologies";
clrscr();
printf("%s",strlwr(s));
getchar();
return 0;
}
相关函数:strupr


strncat返回顶端
原型:extern char *strncat(char *dest,char *src,int n);
用法:#include <string.h>
功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的"/0")并添加"/0"。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
举例:
// strncat.c
#include <syslib.h>
#include <string.h>
main()
{
char d[20]="Golden Global";
char *s=" View WinIDE Library";
clrscr();
strncat(d,s,5);
printf("%s",d);
getchar();
return 0;
}
相关函数:strcat


strncmp返回顶端
原型:extern int strcmp(char *s1,char * s2,int n);
用法:#include <string.h>
功能:比较字符串s1和s2的前n个字符。
说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
举例:
// strncmp.c
#include <syslib.h>
#include <string.h>
main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
clrscr();
r=strncmp(s1,s2,6);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");
getchar();
clrscr();
r=strncmp(s1,s2,10);
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;
}
相关函数:bcmp,memcmp,stricmp,strnicmp


strnicmp,strncmpi返回顶端
原型:extern int strnicmp(char *s1,char * s2,int n);
用法:#include <string.h>
功能:比较字符串s1和s2的前n个字符但不区分大小写。
说明:strncmpi是到strnicmp的宏定义
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
举例:
// strnicmp.c
#include <syslib.h>
#include <string.h>
main()
{
char *s1="Hello, Programmers!";
char *s2="Hello, programmers!";
int r;
clrscr();
r=strnicmp(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;
}
相关函数:bcmp,memcmp,stricmp,strncmp


strncpy返回顶端
原型:extern char *strncpy(char *dest, char *src, int n);
用法:#include <string.h>
功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。
说明:
如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。
如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
举例:
// strncpy.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
char *d="Hello, GGV Programmers";
char *p=strdup(s);
clrscr();
textmode(0x00); // enable 6 lines mode
strncpy(d,s,strlen(s));
printf("%s/n",d);
strncpy(p,s,strlen(d));
printf("%s",p);
getchar();
return 0;
}
相关函数:memccpy,memcpy,stpcpy,strcpy


strpbrk返回顶端
原型:extern char *strpbrk(char *s1, char *s2);
用法:#include <string.h>
功能:在字符串s1中寻找字符串s2中任何一个字符相匹配的第一个字符的位置,空字符NULL不包括在内。
说明:返回指向s1中第一个相匹配的字符的指针,如果没有匹配字符则返回空指针NULL。
举例:
// strpbrk.c
#include <syslib.h>
#include <string.h>
main()
{
char *s1="Welcome To Beijing";
char *s2="BIT";
char *p;
clrscr();
p=strpbrk(s1,s2);
if(p)
printf("%s/n",p);
else
printf("Not Found!/n");
p=strpbrk(s1, "Da");
if(p)
printf("%s",p);
else
printf("Not Found!");
getchar();
return 0;
}
相关函数:strcspn,strtok


strrev返回顶端
原型:extern char *strrev(char *s);
用法:#include <string.h>
功能:把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)。
说明:返回指向颠倒顺序后的字符串指针。
举例:
// strrev.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Welcome To Beijing";
clrscr();
textmode(0x00); // 6 lines per screen
printf("%s/n%s",s,strrev(strdup(s)));
getchar();
return 0;
}
相关函数:无


trset返回顶端
原型:extern char *strset(char *s, char c);
用法:#include <string.h>
功能:把字符串s中的所有字符都设置成字符c。
说明:返回指向s的指针。
举例:
// strset.c
#include <syslib.h>
#include <string.h>:
main()
{
char *s="Golden Global View";
clrscr();
strset(s,"G");
printf("%s",s);
getchar();
return 0;
}
相关函数:bzero,memset,setmem


strstr返回顶端
原型:extern char *strstr(char *haystack, char *needle);
用法:#include <string.h>
功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。
说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。
举例:
// strstr.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Golden Global View";
char *l="lob";
char *p;
clrscr();
p=strstr(s,l);
if(p)
printf("%s",p);
else
printf("Not Found!");
getchar();
return 0;
}
相关函数:strchr,strpbrk,strtok


strtok返回顶端
原型:extern char *strtok(char *s, char *delim);
用法:#include <string.h>
功能:分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。
说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。
strtok在s中查找包含在delim中的字符并用NULL("/0")来替换,直到找遍整个字符串。
返回指向下一个标记串。当没有标记串时则返回空字符NULL。
举例:
// strtok.c
#include <syslib.h>
#include <string.h>
#include <stdio.h>
main()
{
char *s="Golden Global View";
char *d=" ";
char *p;
clrscr();
p=strtok(s,d);
while(p)
{
printf("%s/n",s);
strtok(NULL,d);
}
getchar();
return 0;
}
相关函数:strcspn,strpbrk


strupr返回顶端
原型:extern char *strupr(char *s);
用法:#include <string.h>
功能:将字符串s转换为大写形式
说明:只转换s中出现的小写字母,不改变其它字符。返回指向s的指针。
举例:
// strupr.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="Copywrite 1999-2000 GGV Technologies";
clrscr();
printf("%s",strupr(s));
getchar();
return 0;
}
相关函数:strlwr


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。