迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

如何在 c++ 中查找字符串中的子字符串

作者:迹忆客 最近更新:2023/04/09 浏览次数:

本文演示了在 C++ 中查找字符串中给定子字符串的方法。


使用 find 方法在 C++ 中查找字符串中的子字符串

最直接的解决方法是 find 函数,它是一个内置的字符串方法,它以另一个字符串对象作为参数。

#include <iostream>
#include <string>

using std::cout;
using std::cin;
using std::endl
using std::string;

int main(){
    string str1 = "this is random string oiwao2j3";
    string str2 = "oiwao2j3";
    string str3 = "random s tring";

    str1.find(str2) != string::npos ?
        cout << "str1 contains str2" << endl :
        cout << "str1 does not contain str3" << endl;

    str1.find(str3) != string::npos ?
        cout << "str1 contains str3" << endl :
        cout << "str1 does not contain str3" << endl;

    return EXIT_SUCCESS;
}

输出:

str1 contains str2
str1 does not contain str3

或者,你可以使用 find 来比较两个字符串中的特定字符范围。要做到这一点,你应该把范围的起始位置和长度作为参数传递给 find 方法。

#include <iostream>
#include <string>

using std::cout;
using std::cin;
using std::endl
using std::string;
using std::stoi;

int main(){
    string str1 = "this is random string oiwao2j3";
    string str3 = "random s tring";
    constexpr int length = 6;
    constexpr int pos = 0;

    str1.find(str3.c_str(), pos, length) != string::npos ?
        cout << length << " chars match from pos " << pos << endl :
        cout << "no match!" << endl;

    return EXIT_SUCCESS;
}

输出:

6 chars match from pos 0

使用 rfind 方法在 C++ 中查找字符串中的子字符串

rfind 方法的结构与 find 类似。我们可以利用 rfind 来寻找最后的子字符串,或者指定一定的范围来匹配给定的子字符串。

#include <iostream>
#include <string>

using std::cout;
using std::cin;
using std::endl
using std::string;
using std::stoi;

int main(){
    string str1 = "this is random string oiwao2j3";
    string str2 = "oiwao2j3";

    str1.rfind(str2) != string::npos ?
        cout << "last occurrence of str3 starts at pos "
            << str1.rfind(str2)  << endl :
        cout << "no match!" << endl;

    return EXIT_SUCCESS;
}

输出:

last occurrence of str3 starts at pos 22

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

MySQL 中将字符串附加到现有字段

发布时间:2023/05/08 浏览次数:63 分类:MySQL

本文我们将学习使用 CONCAT() 和 CONCAT_WS() 函数在 MySQL 字段中连接或附加字符串值。使用 CONCAT() 和 CONCAT_WS() 将字符串附加到 MySQL 中的现有字段

MySQL 将字符串拆分成行

发布时间:2023/05/08 浏览次数:68 分类:MySQL

在本文中,我们将讨论什么是将字符串拆分为行以及如何创建一个自执行函数。 我们主要讨论 SUBSTRING_INDEX() 方法以及一些示例以轻松理解该概念。

在 MongoDB 中将字符串转换为日期

发布时间:2023/04/20 浏览次数:63 分类:MongoDB

MongoDB 是一个越来越受欢迎的优秀平台。 在它提供的各种功能中,MongoDB 还允许您将数据从一种类型转换为另一种类型。本文介绍了在各种版本的 MongoDB 中将字符串转换为日期字段的方法。

如何从 Python 中的字符串中删除第一个字符

发布时间:2023/04/11 浏览次数:118 分类:Python

在Python中,要删除一个字符串的第一个字符,可以使用切片操作或者字符串方法。 方法一:使用切片操作 在Python中,可以使用切片操作来获取字符串的子字符串。切片操作使用方括号

如何从 Python 中的字符串中删除特殊字符

发布时间:2023/04/11 浏览次数:272 分类:Python

在Python中,可以使用多种方法来删除字符串中的特殊字符。在本文中,我们将介绍一些最常见的方法。 方法一:使用replace()方法删除特殊字符 可以使用字符串的 replace() 方法来删除字符

如何在 Python 中将字符串转换为双精度

发布时间:2023/04/11 浏览次数:191 分类:Python

在Python中,将字符串转换为双精度浮点数(double)可以使用内置的 float() 函数。在本文中,我们将介绍如何使用 float() 函数将字符串转换为双精度浮点数,并讨论一些相关问题。 使用

如何在 C++ 中把字符串转换为小写

发布时间:2023/04/09 浏览次数:63 分类:C++

介绍了如何将 C++ std::string 转换为小写的方法。当我们在考虑 C++ 中的字符串转换方法时,首先要问自己的是我的输入字符串有什么样的编码

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便