C语言string.h中常用字符函数介绍

来源:互联网 发布:java tcp编程实例 编辑:程序博客网 时间:2024/05/19 03:45

C语言string.h中常用字符函数介绍



      strcpy


      函数名: strcpy


      功 能: 拷贝一个字符串到另一个


      用 法: char*strcpy(char*destin, char*source);


      程序例:


      #include <stdio.h>


      #include <string.h>


      intmain(void)


      {


      charstring[10];


      char*str1 = "abcdefghi";


      strcpy(string, str1);


      printf("%s\n", string);


      return0;


      }


      strncpy


      函数名:strncpy


      原型:char* strncpy(char*dest, char*src, size_tn);  


      功能:将字符串src中最多n个字符复制到字符数组dest中(它并不像strcpy一样遇到NULL才停止复制,而是等凑够n个字符才开始复制),返回指向dest的指针。


      #include <stdio.h>


      #include <string.h>


      intmain(void)


      {


      charstring[10];


      char*str1 = "abcdefghi";


      strncpy(string, str1,3);


      printf("%s\n", string);


      return0;


      }


      strcat


      函数名: strcat


      功 能: 字符串拼接函数


      用 法: char*strcat(char*destin, char*source);


      程序例:


      #include <string.h>


      #include <stdio.h>


      intmain(void)


      {


      chardestination[25];


      char*blank = " ", *c = "C++", *Borland = "Borland";


      strcpy(destination, Borland);


      strcat(destination, blank);


      strcat(destination, c);


      printf("%s\n", destination);


      return0;


      }


      strchr


      函数名: strchr


      功 能: 在一个串中查找给定字符的第一个匹配之处\


      用 法: char*strchr(char*str, charc);


      程序例:


      #include <string.h>


      #include <stdio.h>


      intmain(void)


      {


      charstring[15];


      char*ptr, c = 'r';


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


      ptr = strchr(string, c);


      if(ptr)


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


      else


      printf("The character was not found\n");


      return0;


      }


      strcmp


      函数名: strcmp


      功 能: 串比较


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


      看Asic码,str1>str2,返回值 > 0;两串相等,返回0


      程序例:


      #include <string.h>


      #include <stdio.h>


      intmain(void)


      {


      char*buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";


      intptr;


      ptr = strcmp(buf2, buf1);


      if(ptr > 0)


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


      else


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


      ptr = strcmp(buf2, buf3);


      if(ptr > 0)


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


      else


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


      return0;


      }


      strnicmp


      函数名: strnicmp


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


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


      程序例:


      #include <string.h>


      #include <stdio.h>


      intmain(void)


      {


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


      intptr;


      ptr = strnicmp(buf2, buf1);


      if(ptr > 0)


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


      if(ptr < 0)


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


      if(ptr == 0)


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


      return0;


      }


      strlen


      函数名:strlen


      功能: strlen函数求的是字符串的长度,它求得方法是从字符串的首地址开始到遇到第一个'\0'停止计数,如果你只定义没有给它赋初值,这个结果是不定的,它会从字符串首地址一直记下去,直到遇到'\0'才会停止。


      原型: size_tstrlen(constchar*s);


      #include<stdio.h>


      #include <string.h>


      intmain()


      { inti=0;


      char*he ="Hello,world";


      i=strlen(he);


      printf("字符串长度为%d\n",i);


      return0;


      } //


      运行结果:


      字符串长度为11


      strcspn


      函数名: strcspn


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


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


      程序例:


      #include <stdio.h>


      #include <string.h>


      #include <alloc.h>


      intmain(void)


      {


      char*string1 = "1234567890";


      char*string2 = "747DC8";


      intlength;


      length = strcspn(string1, string2);


      printf("Character where strings intersect is at position %d\n", length);


      return0;


      }


      strdup


      函数名: strdup


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


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


      程序例:


      #include <stdio.h>


      #include <string.h>


      #include <alloc.h>


      intmain(void)


      {


      char*dup_str, *string = "abcde";


      dup_str = strdup(string);


      printf("%s\n", dup_str);


      free(dup_str);


      return0;


      }


      stricmp


      函数名:stricmp


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


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


      程序例:


      #include <string.h>


      #include <stdio.h>


      intmain(void)


      {


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


      intptr;


      ptr = stricmp(buf2, buf1);


      if(ptr > 0)


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


      if(ptr < 0)


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


      if(ptr == 0)


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


      return0;


      }


      strerror


      函数名: strerror


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


      用 法: char*strerror(interrnum);


      程序例:


      #include <stdio.h>


      #include <errno.h>


      intmain(void)


      {


      char*buffer;


      buffer = strerror(errno);


      printf("Error: %s\n", buffer);


      return0;


      }


      strcmpi


      函数名: strcmpi


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


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


      程序例:


      #include <string.h>


      #include <stdio.h>


      intmain(void)


      {


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


      intptr;


      ptr = strcmpi(buf2, buf1);


      if(ptr > 0)


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


      if(ptr < 0)


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


      if(ptr == 0)


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


      return0;


      }


      strnicmp


      函数名: strnicmp


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


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


      程序例:


      #include <string.h>


      #include <stdio.h>


      intmain(void)


      {


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


      intptr;


      ptr = strnicmp(buf2, buf1, 3);


      if(ptr > 0)


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


      if(ptr < 0)


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


      if(ptr == 0)


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


      return0;


      }


      strnset


      函数名: strnset


      功 能: 将一个字符串前n个字符都设为指定字符


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


      程序例:


      #include <stdio.h>


      #include <string.h>


      intmain(void)


      {


      char*string = "abcdefghijklmnopqrstuvwxyz";


      charletter = 'x';


      printf("string before strnset: %s\n", string);


      strnset(string, letter, 13);


      printf("string after strnset: %s\n", string);


      return0;


      }


      strpbrk


      函数名: strpbrk


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


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


      程序例:


      #include <stdio.h>


      #include <string.h>


      intmain(void)


      {


      char*string1 = "abcdefghijklmnopqrstuvwxyz";


      char*string2 = "onm";


      char*ptr;


      ptr = strpbrk(string1, string2);


      if(ptr)


      printf("strpbrk found first character: %c\n", *ptr);


      else


      printf("strpbrk didn't find character in set\n");


      return0;


      }


      strrchr


      函数名: strrchr


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


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


      程序例:


      #include <string.h>


      #include <stdio.h>


      intmain(void)


      {


      charstring[15];


      char*ptr, c = 'r';


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


      ptr = strrchr(string, c);


      if(ptr)


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


      else


      printf("The character was not found\n");


      return0;


      }


      strrev


      函数名: strrev


      功 能: 串倒转


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


      程序例:


      #include <string.h>


      #include <stdio.h>


      intmain(void)


      {


      char*forward = "string";


      printf("Before strrev(): %s\n", forward);


      strrev(forward);


      printf("After strrev(): %s\n", forward);


      return0;


      }


      strset


      函数名: strset


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


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


      程序例:


      #include <stdio.h>


      #include <string.h>


      intmain(void)


      {


      charstring[10] = "123456789";


      charsymbol = 'c';


      printf("Before strset(): %s\n", string);


      strset(string, symbol);


      printf("After strset(): %s\n", string);


      return0;


      }


      strstr


      函数名: strstr


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


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


      程序例:


      #include <stdio.h>


      #include <string.h>


      intmain(void)


      {


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


      ptr = strstr(str1, str2);


      printf("The substring is: %s\n", ptr);


      return0;


      }


      strtod


      函数名: strtod


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


      用 法: doublestrtod(char*str, char**endptr);


      程序例:


      #include <stdio.h>


      #include <stdlib.h>


      intmain(void)


      {


      charinput[80], *endptr;


      doublevalue;


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


      gets(input);


      value = strtod(input, &endptr);


      printf("The string is %s the number is %lf\n", input, value);


      return0;


      }


      strtok


      函数名: strtok


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


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


      程序例:


      #include <string.h>


      #include <stdio.h>


      intmain(void)


      {


      charinput[16] = "abc,d";


      char*p;


      /* strtok places a NULL terminator


      in front of the token, if found */


      p = strtok(input, ",");


      if(p) printf("%s\n", 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("%s\n", p);


      return0;


      }


      strtol


      函数名: strtol


      功 能: 将串转换为长整数


      用 法: longstrtol(char*str, char**endptr, intbase);


      程序例:


      #include <stdlib.h>


      #include <stdio.h>


      intmain(void)


      {


      char*string = "87654321", *endptr;


      longlnumber;


      /* strtol converts string to long integer */


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


      printf("string = %s long = %ld\n", string, lnumber);


      return0;


      }


      strupr


      函数名:strupr


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


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


      程序例:


      #include <stdio.h>


      #include <string.h>


      intmain(void)


      {


      charstring[ ] = "abcdefghijklmnopqrstuvwxyz", *ptr;//定义为数组才能修改


      /* converts string to upper case characters */


      ptr = strupr(string);


      printf("%s\n", ptr);


      return0;


      }


      swab


      函数名: swab


      功 能: 交换字节


      用 法: voidswab (char*from, char*to, intnbytes);


      程序例:


      #include <stdlib.h>


      #include <stdio.h>


      #include <string.h>


      charsource[15] = "rFna koBlrna d";


      chartarget[15];


      intmain(void)


      {


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


      printf("This is target: %s\n", target);


      return0;


      }


      以上都是些C中字符串的常用函数

0 0
原创粉丝点击