使用C++打印出给定字符串中作为子字符串出现的给定数组中的所有字符串

2023年 8月 29日 58.3k 0

使用C++打印出给定字符串中作为子字符串出现的给定数组中的所有字符串

在编程世界中,有很多场景我们确实希望在较大的文本中寻找特定的模式。一项常见任务是查找并打印给定数组中作为给定字符串中的子字符串出现的每个字符串。这个看似基本的问题可以利用各种方法来解决,在本文中,我们将探讨其中的两种方法。我们将对每种方法所使用的语法和算法进行明确的说明,并提供两个完整的可执行代码示例。

语法

在我们介绍这些方法之前,让我们首先了解我们将用来解决这个问题的语法 -

void printMatchingStrings(string array[], string text);

登录后复制

算法

为了解决从数组中查找并打印给定字符串中作为子字符串出现的所有字符串的问题,我们可以遵循以下分步算法 -

  • 初始化一个空向量来存储匹配的字符串。

  • 在数组中重复每个字符串。

  • 检查当前字符串是否是给定文本的子字符串。

  • 假设是,将字符串添加到匹配字符串的向量中。

  • 在遍历所有字符串后,打印匹配字符串的向量。

方法一:使用 string.find() 函数

在此技术中,我们将使用 string.find() 函数,该函数返回字符串中子字符串的位置。如果没有找到子字符串,它会返回一个名为 string::npos 的特殊值。

示例

#include
#include
#include

void printMatchingStrings(const std::string array[], const std::string& text, int arraySize) {
std::vector matchingStrings;

for (int i = 0; i < arraySize; i++) {
if (text.find(array[i]) != std::string::npos) {
matchingStrings.push_back(array[i]);
}
}

for (const std::string& match : matchingStrings) {
std::cout

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论