📌  相关文章
📜  C++ 程序检查一个字符串是否是另一个字符串的子字符串(1)

📅  最后修改于: 2023-12-03 15:14:01.186000             🧑  作者: Mango

C++ 程序检查一个字符串是否是另一个字符串的子字符串

在 C++ 中判断一个字符串是否是另一个字符串的子字符串,有多种方法可以实现。本文将会介绍其中两种常用的方法。

方法一:使用 string 类的 substr 函数

string 是 C++ 标准库中的字符串类,它提供了许多字符串操作函数,其中 substr 函数可以用于检查一个字符串是否是另一个字符串的子字符串。substr 函数的定义如下:

string substr (size_t pos, size_t len) const;

其中 pos 是截取的起始位置,len 是截取的长度。例如,假设有两个字符串 strsub_str,我们可以用如下代码来判断 sub_str 是否是 str 的子字符串:

if (str.find(sub_str) != string::npos) {
  // sub_str 是 str 的子字符串
} else {
  // sub_str 不是 str 的子字符串
}

这里使用了 string 类的 find 函数,它返回 sub_strstr 中出现的位置。如果找不到,则返回 string::npos

方法二:使用 cstring 的 strstr 函数

在 C 语言中,我们可以使用 strstr 函数来判断一个字符串是否是另一个字符串的子字符串。在 C++ 中,我们可以使用 cstring 头文件中的 strstr 函数来实现同样的功能。strstr 函数的定义如下:

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

其中 str1 是原始字符串,str2 是要查找的子字符串。如果 str2str1 的子字符串,则函数返回指向 str1 中第一个匹配 str2 的子字符串的指针。如果 str2 不是 str1 的子字符串,则返回 nullptr

下面是使用 strstr 函数判断一个字符串是否是另一个字符串的子字符串的示例代码:

#include <cstring>

bool is_substring(char* str, char* sub_str) {
  char* result = strstr(str, sub_str);
  return (result != nullptr);
}

int main() {
  char str[] = "hello world";
  char sub_str[] = "world";
  if (is_substring(str, sub_str)) {
    // sub_str 是 str 的子字符串
  } else {
    // sub_str 不是 str 的子字符串
  }
  return 0;
}
总结

在 C++ 中判断一个字符串是否是另一个字符串的子字符串,可以使用 string 类的 substr 函数或者 cstring 头文件中的 strstr 函数。两种方法各有优缺点,具体使用时需要根据实际情况选择。