📅  最后修改于: 2023-12-03 15:24:08.382000             🧑  作者: Mango
在 C++ 中,有很多方法可以检查字符串是否包含字符。本文将介绍一些常见的方法,以帮助程序员处理这些问题。
C++ 中的字符串提供了一个名为 find() 的方法,可以检查一个字符串是否包含另一个字符串。这个方法返回被搜索串第一次出现的位置,如果没有找到则返回 string::npos。可以使用以下代码来检查一个字符串是否包含一个字符:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "hello world";
char c = 'w';
if (str.find(c) != string::npos) {
cout << "String contains the character!" << endl;
}
else {
cout << "String does not contain the character." << endl;
}
return 0;
}
这里我们定义了一个字符串 str 和一个字符 c,然后使用 find() 方法来搜索 c 是否在字符串中出现。如果找到了,则会输出“String contains the character!”。
另一种方法是使用 for 循环逐个字符地搜索字符串。代码示例如下:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "hello world";
char c = 'w';
bool found = false;
for (int i = 0; i < str.length(); i++) {
if (str[i] == c) {
found = true;
break;
}
}
if (found) {
cout << "String contains the character!" << endl;
}
else {
cout << "String does not contain the character." << endl;
}
return 0;
}
这里我们定义了一个布尔变量 found,初始化为 false。然后使用 for 循环逐个字符地搜索字符串,如果找到了目标字符,就将 found 设置为 true 并跳出循环。
除了使用字符串的 find() 方法之外,C++ 还提供了一个名为 std::find() 的算法,可以在容器中查找一个元素。对于字符串,我们可以将它转换为字符数组,并使用 std::find() 实现搜索。代码示例如下:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string str = "hello world";
char c = 'w';
if (find(str.begin(), str.end(), c) != str.end()) {
cout << "String contains the character!" << endl;
}
else {
cout << "String does not contain the character." << endl;
}
return 0;
}
这里我们首先使用 std::find() 从 str 的起始位置开始搜索字符 c,如果找到了,则会输出“String contains the character!”。
本文介绍了 C++ 中检查字符串是否包含字符的三种方法:调用字符串的 find() 方法、使用 for 循环逐个字符地搜索字符串和使用 std::find() 算法。每种方法都各有优劣,程序员可以根据具体情况选择适合自己的方法。