字符串函数

来源:互联网 发布:网络摄像头ip不知道 编辑:程序博客网 时间:2024/05/16 06:45

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>
 
  功能:将字符串sr*的前*个字节复制到*est中
 
  说明: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.h>
      #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 char *strcat(char *dest,char *src);
       
  用法:#include <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的宏定义,实际未提供此函数。
        当s1<s2时,返回值<0
        当s1=s2时,返回值=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>
 
  功能:把sr*所指字符串的前*个字符添加到*est结尾处(覆盖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  
 天生我材必有用,千金散尽还复来!海不择细流,故能成其大;山不拒细壤,方能就其高。 

发表评论共1条评论,第1页/共1页 上一页下一页 引用删除1楼  乘风追月/:)
  评论时间:2006年7月28日 19时52分
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="***";
        **ar *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;
      }
     
  相关函数:无


strset

  原型: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 
 天生我材必有用,千金散尽还复来!海不择细流,故能成其大;山不拒细壤,方能就其高。 

发表评论共1条评论,第1页/共1页 上一页下一页 引用删除1楼  乘风追月/:)
  评论时间:2006年7月28日 19时57分
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 

原创粉丝点击