21xrx.com
2024-11-25 13:07:50 Monday
登录
文章检索 我的文章 写文章
C++如何判断字符串中是否包含特定字符串?
2023-06-30 22:12:19 深夜i     --     --
C++ 字符串 判断 特定字符串

C++作为一门高级编程语言,能够处理各种数据类型,包括字符串。在实际应用中,我们经常需要判断一个字符串中是否包含特定的字符串。在这篇文章中,我们将介绍几种方法来实现这个任务。

方法一:使用C++标准库函数

C++标准库提供了许多字符串处理函数,其中最常用的函数之一是“find()”。可以使用该函数在一个字符串中查找另一个字符串。例如,下面的代码使用find()函数查找字符串“hello”是否出现在字符串“Hello, world!”中:


#include <iostream>

#include <string>

using namespace std;

int main()

{

 string str = "Hello, world!";

 string subStr = "hello";

 

 if (str.find(subStr) != string::npos)

  cout << "Sub-string found: " << subStr << endl;

 

 else

  cout << "Sub-string not found: " << subStr << endl;

 

 

 return 0;

}

在这个例子中,使用了”string”的类型定义和相关函数,“find()”函数的返回值是字符串的位置,“string::npos”表示字符串中找不到特定的子字符串。因此,如果“find()”函数返回不等于“string::npos”,就表示特定子字符串被找到。

方法二:使用子字符串迭代器

另一种查找子字符串的方法是使用子字符串迭代器。“std:search()”函数是找到另一个字符串的子字符串的一个好方法。下面的代码可以找到一个字符串中的子字符串,并打印出找到的位置:


#include <iostream>

#include <string>

#include <algorithm>

using namespace std;

int main()

{

 string str = "Hello, world!";

 string subStr = "hello";

 

 auto it = search(str.begin(), str.end(), subStr.begin(), subStr.end());

 

 if (it != str.end()) {

  cout << "Sub-string found: " << subStr << " at position " << it - str.begin() << endl;

 }

 else

  cout << "Sub-string not found: " << subStr << endl;

 

 

 return 0;

}

在这个例子中,使用了STL算法库函数std::search(),迭代器“auto it”被声明为存储返回结果的位置。如果结果不是字符串结束位置,就打印出子字符串已被找到的位置。

方法三:使用字符串类成员函数

使用字符串类成员函数也可以找到一个字符串中的子字符串。例如,“substr()”函数可以获得字符串中从指定位置开始的子字符串。下面的代码可以找到一个字符串中的子串,并将其替换为另一个字符串:


#include <iostream>

#include <string>

using namespace std;

int main()

{

 string str = "Hello, world!";

 string subStr = "world";

 string replaceStr = "there";

 

 size_t pos = str.find(subStr);

 

 if (pos != string::npos) {

  str.replace(pos, subStr.length(), replaceStr);

  cout << "Sub-string found and replaced: " << str << endl;

 }

 else

  cout << "Sub-string not found: " << subStr << endl;

 

 

 return 0;

}

在上面的代码中,使用了“replace()”函数将特定的子串替换为“replaceStr”中指定的字符串。

以上是三种在C++中判断字符串中是否包含特定子字符串的方法。编程时,可以根据具体的功能需求选择不同的方法来达到更好的效果。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复