C语言字符串处理函数 strchr()和 strstr()的区别及使用

字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数。本文主要介绍 C语言中符串处理函数 strchr()和 strstr() 的区别使用方法,以及相关的示例代码。

1、strchr()

在字符串 s 中查找字符 c 出现的位置,代码如下,

#include <stdio.h>
#include <string.h>

/*
char *strchr(const char *str, int c)
参数
s:字符串首地址
c:匹配字母(字符)

返回值
成功:返回第一次出现的 c 地址
失败:NUL
*/

int main ()
{
   const char str[] = "http://www.cjavapy.com";
   const char ch = '.';
   char *ret;

   ret = strchr(str, ch);

   printf("|%c| 之后的字符串是 - |%s|\n", ch, ret);
   
   return(0);
}

2、strstr()

在字符串 haystack 中查找字符串 needle 出现的位置。代码如下,

#include <stdio.h>
#include <string.h>
 
/*
char *strstr(const char *haystack, const char *needle)
参数
haystack:源字符串首地址
needle:匹配字符串首地址

返回值
成功:返回第一次出现的 needle 地址
失败:NULL
*/

int main()
{
   const char haystack[30] = "https://www.cjavapy.com";
   const char needle[10] = "cjavapy";
   char *ret;
 
   ret = strstr(haystack, needle);
 
   printf("子字符串是: %s\n", ret);
   
   return(0);
}

3、strchr()和strstr()区别

char *strchr(char *str, int c); 在一个字符串中查找给定字符的第一个匹配,char *strstr(char *str1, char *str2); 在字符串中查找指定字符串的第一次出现,strchr()是查找字符,strstr()查找字符串。代码如下,

#include <stdio.h>
#include <string.h>

int main ()
{
   const char str[] = "Hello world!";
   const char ch = 'w';
   const char sub[10] = "wor";
   char *ret;

   ret = strrchr(str, ch);   

   printf("strchr() %c is %s\n", ch, ret);
   
   ret = strstr(str, sub);
   printf("strstr() %s is %s\n", sub, ret);

   return 0;
}

推荐阅读
cjavapy编程之路首页