红联Linux门户
Linux帮助

常用字符串处理(c for linux)

发布时间:2007-09-30 01:10:41来源:红联作者:videoout
原型:extern int bcmp(const void *s1, const void *s2, int n);
用法:#include
功能:比较字符串s1和s2的前n个字节是否相等
说明:如果s1=s2或n=0则返回零,否则返回非零值。bcmp不检查NULL。(s1>s2 返回>0 ; s1举例:char s1[5]="abcde"; char s2[5]="abcDe"; s1[2]='\0'; s2[2]='\0'; bcmp(s1,s2,5);

原型:extern void bcopy(const void *src, void *dest, int n);
用法:#include
功能:将字符串src的前n个字节复制到dest中(src,dest不必一定是字符串指针)
说明:bcopy不检查字符串中的空字节NULL,函数没有返回值。
举例:struct {int a; char s[5];} t1,t2; bcopy(&t1,&t2,sizeof(t2));

原型:extern void bzero(void *s, int n);
用法:#include
功能:置字节字符串s的前n个字节为零(s不必一定是字符串指针)
说明:bzero无返回值
举例:struct {int a; char s[5];} tt; bzero(&tt,sizeof(tt));

原型:extern void *memccpy(void *dest, void *src, unsigned char ch, unsigned int count);
用法:#include
功能:由src所指内存区域复制不多于count个字节到dest所指内存区域,如果遇到字符ch则停止复制
说明:返回指向字符ch后的第一个字符的指针(ch也复制到dest中,指向dest),如果src前n个字节中不存在ch,则返回NULL。
举例:char s[5]="abcde"; char d[5],*p=NULL; s[1]='\0'; p=memccpy(d,s,'d',5);

原型:extern void *memchr(void *buf, char ch, unsigned count);
用法:#include
功能:从buf所指内存区域的前count个字节查找字符ch
说明:当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指针;否则返回NULL
举例:char s[5]="abcde"; char *p=NULL; s[1]='\0'; p=memchr(s,'c',5);

原型:extern int memcmp(void *buf1, void *buf2, unsigned int count);
用法:#include
功能:比较内存区域buf1和buf2的前count个字节
说明:当buf1buf2时,返回值>0
举例:char s1[6]="Hello!"; char s2[6]="Hello!"; *(s1+1)='\0'; *(s2+1)='\0'; r=memcmp(s1,s2,6);

原型:extern void *memcpy(void *dest, void *src, unsigned int count);
用法:#include
功能:由src所指内存区域复制count个字节到dest所指内存区域
说明:src和dest所指内存区域不能重叠(重叠时,若dest在地址后,src在前会出现意外),函数返回指向dest的指针
举例:char s[26]="abcdefghijklmnopqrstuvwxyz"; s[3]=0; char *p=NULL; p=memcpy(s,s+2,24);
char s[26]="abcdefghijklmnopqrstuvwxyz"; s[3]=0; char *p=NULL; p=memcpy(s+2,s,24);///

原型:extern void *memmove(void *dest, const void *src, unsigned int count);
extern void *movmem(void *src, void *dest, unsigned int count); (for windows)
用法:#include
功能:由src所指内存区域复制count个字节到dest所指内存区域
说明:src和dest所指内存区域可以重叠,但复制后src内容会被更改。函数返回指向dest的指针
举例:char s[26]="abcdefghijklmnopqrstuvwxyz"; s[3]=0; char *p=NULL; p=memmove(s+2,s,24);

原型:extern void *memset(void *buffer, int c, int count);
extern void *setmem(void *buf, unsigned int count, char ch); (for windows)
用法:#include
功能:把buffer所指内存区域的前count个字节设置成字符c。
说明:返回指向buffer的指针。
举例:char s[]="asdfasssdfg"; memset(s,'G',6); //如果char *s则段错误

原型:extern char *stpcpy(char *dest,char *src);
用法:#include
功能:把src所指由NULL结束的字符串复制到dest所指的数组中
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest结尾处字符(NULL)的指针
举例:char s[26]="abcdefghijklmnopqrstuvwx"; char d[26]={0}; char *p=NULL; p=stpcpy(d,s);

原型:extern char *strcat(char *dest,char *src);
extern char *strncat(char *dest,char *src,int n); (src的n个字符接在dest后)
用法:#include
功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针
举例:

原型:extern char *strchr(char *s,char c);
用法:#include
功能:查找字符串s中首次出现字符c的位置
说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL
举例:

原型:extern int strcmp(char *s1,char * s2);
extern int strncmp(char *s1,char * s2,int n); (比较n个字节)
extern int stricmp(char *s1,char * s2); extern int strcmpi(char *s1,char * s2); (不区分大小写for windows)
extern int strnicmp(char *s1,char * s2,int n); extern int strncmpi(char *s1,char * s2,int n); (比较n个字节)
extern int strcasecmp(const char *s1, const char *s2); (不区分大小写for linux)
extern int strncasecmp(const char *s1, const char *s2, size_t n); (不区分大小写,比较n个字节for linux)
用法:#include
功能:比较字符串s1和s2
说明:当s1s2时,返回值>0
举例:

原型:extern char *strcpy(char *dest,char *src);
extern char *strncpy(char *dest, char *src, int n); (src长度用法:#include
功能:把src所指由NULL结束的字符串复制到dest所指的数组中
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针
举例:

原型:extern int strcspn(char *s1,char *s2);
extern int strspn(char *s1,char *s2); s2以外的任何一个字符,在s1中第一次出现的位置(位置从0开始计)
extern char *strpbrk(char *s1, char *s2); (功能同strcspn())
用法:#include
功能:在字符串s1中搜寻s2中所出现的字符
说明:s2中任何一个字符,在s1中第一次出现的位置(位置从0开始计)
返回第一个出现的字符在s1中的下标值,亦即在s1中出现而s2中没有出现的子串的长度
举例:char *s="Golden wlobal View"; char *r="new"; int n=0; n=strcspn(s,r); (n==4)

原型:extern char *strdup(char *s);
用法:#include
功能:复制字符串s
说明:返回指向被复制的字符串的指针,所需空间自动由malloc()分配且可以自动由free()释放
举例:char *s="Golden Global View"; char *d; d=strdup(s);

原型:extern int strlen(char *s);
用法:#include
功能:计算字符串s的长度
说明:返回s的长度,不包括结束符NULL
举例:

原型: int toupper(int c);
int tolower(int c);
extern char *strlwr(char *s); (将字符串s转换大小写 for windows)
extern char *strupr(char *s);
用法:#include
功能:大写字母转换
说明:
举例:

原型:extern char *strstr(char *haystack, char *needle);
用法:#include
功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。
说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL
举例:char *s="Golden Global View"; char *l="lob"; char *p; p=strstr(s,l);

原型:extern char *strtok(char *s, char *delim);
用法:#include
功能:分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串
说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。
strtok在s中查找包含在delim中的字符并用NULL('\0')来替换,直到找遍整个字符串。
返回指向下一个标记串。当没有标记串时则返回空字符NULL。
举例:char s[26]="Goldenn GlobanaView"; char *d="n"; char *p=NULL; p=strtok(s,d); p=strtok(NULL,d);
文章评论

共有 1 条评论

  1. 奶茶dsk 于 2007-10-03 01:25:56发表:

    都放在string.h下啊。。。