📅  最后修改于: 2023-12-03 15:14:01.186000             🧑  作者: Mango
在 C++ 中判断一个字符串是否是另一个字符串的子字符串,有多种方法可以实现。本文将会介绍其中两种常用的方法。
string 是 C++ 标准库中的字符串类,它提供了许多字符串操作函数,其中 substr 函数可以用于检查一个字符串是否是另一个字符串的子字符串。substr 函数的定义如下:
string substr (size_t pos, size_t len) const;
其中 pos
是截取的起始位置,len
是截取的长度。例如,假设有两个字符串 str
和 sub_str
,我们可以用如下代码来判断 sub_str
是否是 str
的子字符串:
if (str.find(sub_str) != string::npos) {
// sub_str 是 str 的子字符串
} else {
// sub_str 不是 str 的子字符串
}
这里使用了 string 类的 find 函数,它返回 sub_str
在 str
中出现的位置。如果找不到,则返回 string::npos
。
在 C 语言中,我们可以使用 strstr 函数来判断一个字符串是否是另一个字符串的子字符串。在 C++ 中,我们可以使用 cstring 头文件中的 strstr 函数来实现同样的功能。strstr 函数的定义如下:
char* strstr (char* str1, const char* str2);
其中 str1
是原始字符串,str2
是要查找的子字符串。如果 str2
是 str1
的子字符串,则函数返回指向 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 函数。两种方法各有优缺点,具体使用时需要根据实际情况选择。