当前位置:   article > 正文

C语言常见字符串处理string.h库函数strstr、strchr、strcat、strcmp、strcpy、strlen的介绍_strchr与strstr区别

strchr与strstr区别

目录

strstr

声明

返回值

strchar

声明

返回值

strchr和strstr的差别

strcat

声明

返回值

strcmp

声明

返回值

strcpy 

声明

返回值

strlen

声明

返回值


strstr

声明

char *strstr(const char *haystack, const char *needle) //strstr函数声明

//用来查找haystack字符串中是否有needle字符串

其中haystack是被查找的字符串,needle是要在haystack中查找的字符串

函数可以用来查找在haystack中第一次出先needle的位置

返回值

返回在 haystack 中第一次出现 needle 字符串的位置,如果未找到则返回 null。

  1. #include <stdio.h>
  2. #include <string.h>
  3. main(){
  4. char a[20]="hi world";
  5. char b[20]="wo";
  6. printf("%s",strstr(a,b));
  7. }
  8. //运行结果
  9. world

在本例中,strstr返回的是w的位置,输出w位置后的字符串。

strchar

声明

char *strchr(const char *str, int c) //strchr的函数声明

//用来查找str字符串中是否有c字符

str是被查询的字符串,c是要在str字符串内查询的字符,

返回值

返回在 str 中第一次出现 字符c的位置,如果未找到则返回 null。

  1. #include <stdio.h>
  2. #include <string.h>
  3. main(){
  4. char a[20]="hi world";
  5. char b='w';
  6. char c='i';
  7. char d=' ';
  8. printf("%s\n",strchr(a,b));
  9. printf("%s\n",strchr(a,c));
  10. printf("%s",strchr(a,d));
  11. }
  12. //运行结果
  13. world
  14. i world
  15. world

在本例中查找了两个字符,分别是'i'、'w'和' ',strchr分别返回'i'、'w'和' '第一次出现的位置

strchr和strstr的差别

strchr查询的一个字符第一次出现的位置,strstr查询的是一个字符串第一次出现的位置

strcat

声明

char *strcat(char *dest, const char *src) //strcat的函数声明

//将dest字符串和src字符串接在一起,需要注意的是,dest对应的字符串必须可以容纳下追加的字符串

其中dest是被追加的字符串,src是要往dest字符串上追加的字符。追加就是不改变dest字符串的内容,将src写到dest字符串的末尾,相当于两个字符串连接在一起。

返回值

该函数返回一个指向最终的目标字符串 dest 的指针。

  1. #include <stdio.h>
  2. #include <string.h>
  3. main(){
  4. char s[20]="abcd";
  5. char *sp=s;
  6. sp++;
  7. puts(strcat(sp,"ABCD"));
  8. }
  9. //运行结果
  10. bcdABCD

sp++后指针sp指向s字符串中b的位置,将"ABCD"追加到s字符串的末尾,输出时从sp指向的位置开始输出字符串。

strcmp

声明

int strcmp(const char *str1, const char *str2) //strcmp函数的声明

//比较两个字符串,根据str1和str2的值大小返回对应的值

返回值

  • 如果返回值小于 0,则表示 str1 小于 str2。
  • 如果返回值大于 0,则表示 str1 大于 str2。
  • 如果返回值等于 0,则表示 str1 等于 str2。
  1. #include <stdio.h>
  2. #include <string.h>
  3. main(){
  4. char a[]="1234";
  5. char b[]="12345";
  6. char c[]="12345";
  7. printf("%d\n",strcmp(a,b));
  8. printf("%d\n",strcmp(b,a));
  9. printf("%d\n",strcmp(b,c));
  10. }
  11. //运行结果
  12. -1
  13. 1
  14. 0

strcpy 

声明

char *strcpy(char *dest, const char *src) //strcpy函数的声明

//复制src指向的内容到dest指向的字符串中

将src中的内容复制到dest对应字符串内

返回值

该函数返回指向最终的目标字符串 dest 的指针。

  1. #include <stdio.h>
  2. #include <string.h>
  3. main(){
  4. char a[]="abcd";
  5. char b[]="ABC";
  6. char *s=a;
  7. s++;
  8. printf("%s\n",strcpy(s,b));
  9. puts(a);
  10. }
  11. //运行结果
  12. ABC
  13. aABC
  14. //strcpy返回s指针对应的地址

s的地址指向的是a字符数组中的b,所以strcpy复制了b数组中的字符到a数组中b位置。

strlen

声明

size_t strlen(const char *str) //strlen的函数声明

//计算字符串的长度,碰到'\0'结束,不包括'\0'

返回值

字符串的实际长度

  1. #include <stdio.h>
  2. #include <string.h>
  3. main(){
  4. char a[]="abcde";
  5. printf("%d",strlen(a));
  6. }
  7. //运行结果
  8. 5

上述用到的代码可直接运行验证,所用编译环境为Dev-C++5.11

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/694015
推荐阅读
相关标签
  

闽ICP备14008679号