c语言字符串函数

strcpy
  原型:extern char *strcpy(char *dest,char *src);
  用法:#include <string.h>
  功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
  说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
  返回指向dest结尾处字符(NULL)的指针。
  举例:
  // 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;
  }
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;
  }
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;
  }
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;
  }
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);
  free(p);
  getchar();
  return 0;
  }
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;
  }
strcmp
  功 能: 将一个串与另一个比较
  用 法: 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
  功 能: 把串中的一部分与另一串中的一部分比较 (前n个字符)
  用 法: int strncmp(char *str1, char *str2,int maxlen);
  程序例:
  #include <string.h>
  #include <stdio.h>
  int main(void)
  {
  char *buf1 = "BBBccc", *buf2 = "bbbccc";
  int ptr;
  ptr = strncmp(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;
  }
strnicmp
  功 能: 不注重大小写地比较两个串的前n个字符
  用 法: 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值