返回

C语言中的strstr()函数,轻松定位字符串中的子串

闲谈

C语言的strstr()函数可谓一把强有力的利刃,它能够帮助我们在字符串的海洋中精确定位子串,可谓编程中的寻宝利器。了解了它的奥妙,我们的代码将如虎添翼!

初识strstr()函数

strstr()函数的使命很简单:在源字符串中查找特定子串。当目标子串在源字符串中现身时,strstr()函数就会欣然将其地址奉上。但请注意,这个地址可不是指源字符串的起始地址,而是子串在源字符串中的落脚点。

揭秘strstr()函数的用法

要让strstr()函数大显神通,你需要提供两个参数:

  • 源字符串: 待搜索的字符串,就像大海捞针的大海。
  • 子串: 我们要在源字符串中找到的特定字符串,相当于那根小小的针。

只需一行代码,strstr()函数就能踏上寻宝之旅:

char *strstr(const char *str1, const char *str2);

一旦找到目标子串,strstr()函数就会返回指向子串的指针,就像寻宝者找到宝藏后扬起的胜利旗帜。不过,如果源字符串中没有子串的踪影,strstr()函数就会空手而归,返回一个指向NULL的指针。

代码示例,化繁为简

为了加深理解,我们准备了一道实战演练:

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

int main() {
  char str1[] = "Hello, world!";
  char str2[] = "world";

  char *result = strstr(str1, str2);

  if (result) {
    printf("子串 '%s' 在源字符串中出现,地址为 %p\n", str2, result);
  } else {
    printf("子串 '%s' 不在源字符串中出现\n", str2);
  }

  return 0;
}

运行代码,你将看到以下输出:

子串 'world' 在源字符串中出现,地址为 0x7fffcf6c87c0

瞧,strstr()函数成功定位了子串"world"在源字符串中的地址。

注意事项,避免踩坑

在使用strstr()函数时,有两点需要注意:

  1. 大小写敏感: strstr()函数对大小写敏感,因此"world"和"WORLD"会被视为不同的子串。
  2. 指针的含义: strstr()函数返回的指针指向子串在源字符串中的起始位置,而不是源字符串的起始位置。

总结,展望未来

掌握了strstr()函数的用法,我们就能在字符串的浩瀚世界中轻松定位子串,如同在大海中寻找到那枚珍贵的珍珠。相信在你的代码中,strstr()函数也将发挥它强大的作用,助力你创造更多精彩。