字符串的一些函数 转自http:baike.baidu.comview1570652.htm

    技术2022-05-19  23

     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

      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

      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;

      }

      相关函数:无

      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

      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

      函数名: strcspn

      功 能: 在串中查找第一个给定字符集内容的段

      用 法: int strcspn(char *str1, char *str2);

      程序例:

      #include <stdio.h>

      #include <string.h>

      #include <alloc.h>

      int main(void)

      {

      char *string1 = "1234567890";

      char *string2 = "747DC8";

      int length;

      length = strcspn(string1, string2);

      printf("Character where strings intersect is at position %dn", length);

      return 0;

      }

      函数名: strdup

      功 能: 将串拷贝到新建的位置处

      用 法: char *strdup(char *str);

      程序例:

      #include <stdio.h>

      #include <string.h>

      #include <alloc.h>

      int main(void)

      {

      char *dup_str, *string = "abcde";

      dup_str = strdup(string);

      printf("%sn", dup_str);

      free(dup_str);

      return 0;

      }

      函数名: stricmp

      功 能: 以大小写不敏感方式比较两个串

      用 法: int stricmp(char *str1, char *str2);

      程序例:

      #include <string.h>

      #include <stdio.h>

      int main(void)

      {

      char *buf1 = "BBB", *buf2 = "bbb";

      int ptr;

      ptr = stricmp(buf2, buf1);

      if (ptr > 0)

      printf("buffer 2 is greater than buffer 1n");

      if (ptr < 0)

      printf("buffer 2 is less than buffer 1n");

      if (ptr == 0)

      printf("buffer 2 equals buffer 1n");

      return 0;

      }

      函数名: strerror

      功 能: 返回指向错误信息字符串的指针

      用 法: char *strerror(int errnum);

      程序例:

      #include <stdio.h>

      #include <errno.h>

      int main(void)

      {

      char *buffer;

      buffer = strerror(errno);

      printf("Error: %sn", buffer);

      return 0;

      }

      函数名: strcmpi

      功 能: 将一个串与另一个比较, 不管大小写

      用 法: int strcmpi(char *str1, char *str2);

      程序例:

      #include <string.h>

      #include <stdio.h>

      int main(void)

      {

      char *buf1 = "BBB", *buf2 = "bbb";

      int ptr;

      ptr = strcmpi(buf2, buf1);

      if (ptr > 0)

      printf("buffer 2 is greater than buffer 1n");

      if (ptr < 0)

      printf("buffer 2 is less than buffer 1n");

      if (ptr == 0)

      printf("buffer 2 equals buffer 1n");

      return 0;

      }

      函数名: strncmp

      功 能: 串比较

      用 法: int strncmp(char *str1, char *str2, int maxlen);

      程序例:

      #include <string.h>

      #include <stdio.h>

      int main(void)

      {

      char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";

      int ptr;

      ptr = strncmp(buf2,buf1,3);

      if (ptr > 0)

      printf("buffer 2 is greater than buffer 1n");

      else

      printf("buffer 2 is less than buffer 1n");

      ptr = strncmp(buf2,buf3,3);

      if (ptr > 0)

      printf("buffer 2 is greater than buffer 3n");

      else

      printf("buffer 2 is less than buffer 3n");

      return(0);

      }

      函数名: strncmpi

      功 能: 把串中的一部分与另一串中的一部分比较, 不管大小写

      用 法: int strncmpi(char *str1, char *str2,int maxlen);

      程序例:

      #include <string.h>

      #include <stdio.h>

      int main(void)

      {

      char *buf1 = "BBBccc", *buf2 = "bbbccc";

      int ptr;

      ptr = strncmpi(buf2,buf1,3);

      if (ptr > 0)

      printf("buffer 2 is greater than buffer 1n");

      if (ptr < 0)

      printf("buffer 2 is less than buffer 1n");

      if (ptr == 0)

      printf("buffer 2 equals buffer 1n");

      return 0;

      }

      函数名: strncpy

      功 能: 串拷贝

      用 法: char *strncpy(char *destin, char *source, int maxlen);

      程序例:

      #include <stdio.h>

      #include <string.h>

      int main(void)

      {

      char string[10];

      char *str1 = "abcdefghi";

      strncpy(string, str1, 3);

      string[3] = '';

      printf("%sn", string);

      return 0;

      }

      函数名: strnicmp

      功 能: 不注重大小写地比较两个串

      用 法: int strnicmp(char *str1, char *str2, unsigned maxlen);

      程序例:

      #include <string.h>

      #include <stdio.h>

      int main(void)

      {

      char *buf1 = "BBBccc", *buf2 = "bbbccc";

      int ptr;

      ptr = strnicmp(buf2, buf1, 3);

      if (ptr > 0)

      printf("buffer 2 is greater than buffer 1n");

      if (ptr < 0)

      printf("buffer 2 is less than buffer 1n");

      if (ptr == 0)

      printf("buffer 2 equals buffer 1n");

      return 0;

      }

      函数名: strnset

      功 能: 将一个串中的所有字符都设为指定字符

      用 法: char *strnset(char *str, char ch, unsigned n);

      程序例:

      #include <stdio.h>

      #include <string.h>

      int main(void)

      {

      char *string = "abcdefghijklmnopqrstuvwxyz";

      char letter = 'x';

      printf("string before strnset: %sn", string);

      strnset(string, letter, 13);

      printf("string after strnset: %sn", string);

      return 0;

      }

      函数名: strpbrk

      功 能: 在串中查找给定字符集中的字符

      用 法: char *strpbrk(char *str1, char *str2);

      程序例:

      #include <stdio.h>

      #include <string.h>

      int main(void)

      {

      char *string1 = "abcdefghijklmnopqrstuvwxyz";

      char *string2 = "onm";

      char *ptr;

      ptr = strpbrk(string1, string2);

      if (ptr)

      printf("strpbrk found first character: %cn", *ptr);

      else

      printf("strpbrk didn't find character in setn");

      return 0;

      }

      函数名: strrchr

      功 能: 在串中查找指定字符的最后一个出现

      用 法: char *strrchr(char *str, char c);

      程序例:

      #include <string.h>

      #include <stdio.h>

      int main(void)

      {

      char string[15];

      char *ptr, c = 'r';

      strcpy(string, "This is a string");

      ptr = strrchr(string, c);

      if (ptr)

      printf("The character %c is at position: %dn", c, ptr-string);

      else

      printf("The character was not foundn");

      return 0;

      }

      函数名: strrev

      功 能: 串倒转

      用 法: char *strrev(char *str);

      程序例:

      #include <string.h>

      #include <stdio.h>

      int main(void)

      {

      char *forward = "string";

      printf("Before strrev(): %sn", forward);

      strrev(forward);

      printf("After strrev(): %sn", forward);

      return 0;

      }

      函数名: strset

      功 能: 将一个串中的所有字符都设为指定字符

      用 法: char *strset(char *str, char c);

      程序例:

      #include <stdio.h>

      #include <string.h>

      int main(void)

      {

      char string[10] = "123456789";

      char symbol = 'c';

      printf("Before strset(): %sn", string);

      strset(string, symbol);

      printf("After strset(): %sn", string);

      return 0;

      }

      函数名: strspn

      功 能: 在串中查找指定字符集的子集的第一次出现

      用 法: int strspn(char *str1, char *str2);

      程序例:

      #include <stdio.h>

      #include <string.h>

      #include <alloc.h>

      int main(void)

      {

      char *string1 = "1234567890";

      char *string2 = "123DC8";

      int length;

      length = strspn(string1, string2);

      printf("Character where strings differ is at position %dn", length);

      return 0;

      }

      函数名: strstr

      功 能: 在串中查找指定字符串的第一次出现

      用 法: char *strstr(char *str1, char *str2);

      程序例:

      #include <stdio.h>

      #include <string.h>

      int main(void)

      {

      char *str1 = "Borland International", *str2 = "nation", *ptr;

      ptr = strstr(str1, str2);

      printf("The substring is: %sn", ptr);

      return 0;

      }

      函数名: strtod

      功 能: 将字符串转换为double型值

      用 法: double strtod(char *str, char **endptr);

      程序例:

      #include <stdio.h>

      #include <stdlib.h>

      int main(void)

      {

      char input[80], *endptr;

      double value;

      printf("Enter a floating point number:");

      gets(input);

      value = strtod(input, &endptr);

      printf("The string is %s the number is %lfn", input, value);

      return 0;

      }

      函数名: strtok

      功 能: 查找由在第二个串中指定的分界符分隔开的单词

      用 法: char *strtok(char *str1, char *str2);

      程序例:

      #include <string.h>

      #include <stdio.h>

      int main(void)

      {

      char input[16] = "abc,d";

      char *p;

      /* strtok places a NULL terminator

      in front of the token, if found */

      p = strtok(input, ",");

      if (p) printf("%sn", p);

      /* A second call to strtok using a NULL

      as the first parameter returns a pointer

      to the character following the token */

      p = strtok(NULL, ",");

      if (p) printf("%sn", p);

      return 0;

      }

      函数名: strtol

      功 能: 将串转换为长整数

      用 法: long strtol(char *str, char **endptr, int base);

      程序例:

      #include <stdlib.h>

      #include <stdio.h>

      int main(void)

      {

      char *string = "87654321", *endptr;

      long lnumber;

      /* strtol converts string to long integer */

      lnumber = strtol(string, &endptr, 10);

      printf("string = %s long = %ldn", string, lnumber);

      return 0;

      }

      函数名: strupr

      功 能: 将串中的小写字母转换为大写字母

      用 法: char *strupr(char *str);

      程序例:

      #include <stdio.h>

      #include <string.h>

      int main(void)

      {

      char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;

      /* converts string to upper case characters */

      ptr = strupr(string);

      printf("%sn", ptr);

      return 0;

      }

      函数名: swab

      功 能: 交换字节

      用 法: void swab (char *from, char *to, int nbytes);

      程序例:

      #include <stdlib.h>

      #include <stdio.h>

      #include <string.h>

      char source[15] = "rFna koBlrna d";

      char target[15];

      int main(void)

      {

      swab(source, target, strlen(source));

      printf("This is target: %sn", target);

      return 0;

      }

      PS:isalpha()是字符函数,不是字符串函数,

      isalpha

      原型:extern int isalpha(int c);

      用法:#include <ctype.h>

      功能:判断字符c是否为英文字母

      说明:当c为英文字母a-z或A-Z时,返回非零值,否则返回零。

      举例:

      // isalpha.c

      #include <syslib.h>

      #include <ctype.h>

      #include <stdio.h>

      main()

      {

      int c;

      clrscr(); // clear screen

      printf("Press a key");

      for(;;)

      {

      c=getchar();

      clrscr();

      printf("%c: %s letter",c,isalpha(c)?"is":"not");

      }

      return 0; // just to avoid warnings by compiler

      }


    最新回复(0)