C语言字符串函数集锦(一)

来源:互联网 发布:小米盒子有线网络设置 编辑:程序博客网 时间:2024/04/28 11:25

说起字符串函数,我想大家都不陌生。字符串函数对二进制数据、字符串和表达式执行不同的运算。下面总结了C语言中的字符串函数。

1、函数名: stpcpy

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

用 法:

  1. char *stpcpy(char *destin, char *source);  

程序例:

  1. #include <stdio.h>   
  2. #include <string.h>   
  3. int main(void)   
  4. {   
  5. char string[10];   
  6. char *str1 = "abcdefghi";   
  7. stpcpy(string, str1);   
  8. printf("%s\n", string);   
  9. return 0;   
  10. }  

2、函数名: strcat

功 能: 字符串拼接函数

用 法:

  1. char *strcat(char *destin, char *source);  

程序例:

  1. #include <string.h>   
  2. #include <stdio.h>   
  3. int main(void)   
  4. {   
  5. char destination[25];   
  6. char *blank = " ", *c = "C++", *Borland = "Borland";   
  7. strcpy(destination, Borland);   
  8. strcat(destination, blank);   
  9. strcat(destination, c);   
  10. printf("%s\n", destination);   
  11. return 0;   
  12. }  

3、函数名: strchr

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

用 法:

  1. char *strchr(char *str, char c);  

程序例:

  1. #include <string.h>   
  2. #include <stdio.h>   
  3. int main(void)   
  4. {   
  5. char string[15];   
  6. char *ptr, c = 'r';   
  7. strcpy(string, "This is a string");   
  8. ptr = strchr(string, c);   
  9. if (ptr)   
  10. printf("The character %c is at position: %d\n", c, ptr-string);   
  11. else   
  12. printf("The character was not found\n");   
  13. return 0;   
  14. }  

4、函数名: strcmp

功 能: 串比较

用 法:

  1. int strcmp(char *str1, char *str2);  

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

程序例:

  1. #include <string.h>   
  2. #include <stdio.h>   
  3. int main(void)   
  4. {   
  5. char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";   
  6. int ptr;   
  7. ptr = strcmp(buf2, buf1);   
  8. if (ptr > 0)   
  9. printf("buffer 2 is greater than buffer 1\n");   
  10. else   
  11. printf("buffer 2 is less than buffer 1\n");   
  12. ptr = strcmp(buf2, buf3);   
  13. if (ptr > 0)   
  14. printf("buffer 2 is greater than buffer 3\n");   
  15. else   
  16. printf("buffer 2 is less than buffer 3\n");   
  17. return 0;   
  18. }  

5、函数名: strncmpi

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

用 法:

  1. int strncmpi(char *str1, char *str2, unsigned maxlen);  

程序例:

  1. #include <string.h>   
  2. #include <stdio.h>   
  3. int main(void)   
  4. {   
  5. char *buf1 = "BBB", *buf2 = "bbb";   
  6. int ptr;   
  7. ptr = strcmpi(buf2, buf1);   
  8. if (ptr > 0)   
  9. printf("buffer 2 is greater than buffer 1\n");   
  10. if (ptr < 0)   
  11. printf("buffer 2 is less than buffer 1\n");   
  12. if (ptr == 0)   
  13. printf("buffer 2 equals buffer 1\n");   
  14. return 0;   
  15. }  

6、函数名: strcpy

功 能: 串拷贝

用 法:

  1. char *strcpy(char *str1, char *str2);  

程序例:

  1. #include <stdio.h>   
  2. #include <string.h>   
  3. int main(void)   
  4. {   
  5. char string[10];   
  6. char *str1 = "abcdefghi";   
  7. strcpy(string, str1);   
  8. printf("%s\n", string);   
  9. return 0;   
  10. }  

7、函数名: strcspn

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

用 法:

  1. int strcspn(char *str1, char *str2);  

程序例:

  1. #include <stdio.h>   
  2. #include <string.h>   
  3. #include <alloc.h>   
  4. int main(void)   
  5. {   
  6. char *string1 = "1234567890";   
  7. char *string2 = "747DC8";   
  8. int length;   
  9. length = strcspn(string1, string2);   
  10. printf("Character where strings intersect is at position %d\n", length);   
  11. return 0;   
  12. }  

8、函数名: strdup

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

用 法:

  1. char *strdup(char *str);  

程序例:

  1. #include <stdio.h>   
  2. #include <string.h>   
  3. #include <alloc.h>   
  4. int main(void)   
  5. {   
  6. char *dup_str, *string = "abcde";   
  7. dup_str = strdup(string);   
  8. printf("%s\n", dup_str);   
  9. free(dup_str);   
  10. return 0;   
  11. }  

9、函数名: stricmp

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

用 法:

  1. int stricmp(char *str1, char *str2);  

程序例:

  1. #include <string.h>   
  2. #include <stdio.h>   
  3. int main(void)   
  4. {   
  5. char *buf1 = "BBB", *buf2 = "bbb";   
  6. int ptr;   
  7. ptr = stricmp(buf2, buf1);   
  8. if (ptr > 0)   
  9. printf("buffer 2 is greater than buffer 1\n");   
  10. if (ptr < 0)   
  11. printf("buffer 2 is less than buffer 1\n");   
  12. if (ptr == 0)   
  13. printf("buffer 2 equals buffer 1\n");   
  14. return 0;   
  15. }  

10、函数名: strerror 

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

用 法:

  1. char *strerror(int errnum);  

程序例:

  1. #include <stdio.h>   
  2. #include <errno.h>   
  3. int main(void)   
  4. {   
  5. char *buffer;   
  6. buffer = strerror(errno);   
  7. printf("Error: %s\n", buffer);   
  8. return 0;   
  9. }  

11、函数名: strcmpi

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

用 法:

  1. int strcmpi(char *str1, char *str2);  

程序例:

  1. #include <string.h>   
  2. #include <stdio.h>   
  3. int main(void)   
  4. {   
  5. char *buf1 = "BBB", *buf2 = "bbb";   
  6. int ptr;   
  7. ptr = strcmpi(buf2, buf1);   
  8. if (ptr > 0)   
  9. printf("buffer 2 is greater than buffer 1\n");   
  10. if (ptr < 0)   
  11. printf("buffer 2 is less than buffer 1\n");   
  12. if (ptr == 0)   
  13. printf("buffer 2 equals buffer 1\n");   
  14. return 0;   
  15. }  

12、函数名: strncmp

功 能: 串比较

用 法:

  1. int strncmp(char *str1, char *str2, int maxlen);  

程序例:

  1. #include <string.h>   
  2. #include <stdio.h>   
  3. int main(void)   
  4. {   
  5. char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";   
  6. int ptr;   
  7. ptr = strncmp(buf2,buf1,3);   
  8. if (ptr > 0)   
  9. printf("buffer 2 is greater than buffer 1\n");   
  10. else   
  11. printf("buffer 2 is less than buffer 1\n");   
  12. ptr = strncmp(buf2,buf3,3);   
  13. if (ptr > 0)   
  14. printf("buffer 2 is greater than buffer 3\n");   
  15. else   
  16. printf("buffer 2 is less than buffer 3\n");   
  17. return(0);   
  18. }  

原创粉丝点击