21xrx.com
2024-12-22 21:52:22 Sunday
登录
文章检索 我的文章 写文章
C++中如何获取字符串第一次出现的位置
2023-07-13 15:15:48 深夜i     --     --
C++ 字符串 第一次出现 位置

在C++中,获取字符串第一次出现的位置是非常常见的操作,这个操作可以使用C++标准库中的函数或者自定义函数来完成。下面介绍一下常见的几种方法:

使用C++标准库函数find()和rfind():

C++中的string类提供了find()和rfind()方法,用于在一个字符串中查找子串。其中,find()从前往后查找第一个匹配的位置,rfind()从后往前查找第一个匹配的位置,返回值为找到的第一个匹配位置的下标,如果没找到,则返回一个特殊值string::npos。

示例代码:


#include <iostream>

#include <string>

using namespace std;

int main()

{

    string str = "Hello, World!";

    string subStr = "World";

   

    int pos = str.find(subStr); //找到第一次出现的位置

   

    if (pos == string::npos) //没有找到

        cout << "Not found!" << endl;

    else //找到了

        cout << "Found at position " << pos << endl;

    return 0;

}

自定义函数实现字符串查找:

在C++中,也可以通过自定义函数实现字符串查找。一般来说,自定义函数的代码要比标准函数略长一些,但在一些特殊情况下可能更加高效。

示例代码:


#include <iostream>

#include <string>

using namespace std;

int findStr(string s, string subStr)

{

    int n = s.length();

    int m = subStr.length();

    for (int i = 0; i <= n-m; i++)

    {

        int j = 0;

        while (j < m && s[i+j] == subStr[j])

            j++;

        if (j == m)

            return i;

    }

    return -1;

}

int main()

{

    string str = "Hello, World!";

    string subStr = "World";

   

    int pos = findStr(str, subStr); //找到第一次出现的位置

     

    if (pos == -1) //没有找到

        cout << "Not found!" << endl;

    else //找到了

        cout << "Found at position " << pos << endl;

    return 0;

}

总结:

无论是使用标准函数还是自定义函数,在C++中都可以很方便地实现查找字符串第一次出现的位置。需要注意的是,在实际编程中,需要根据具体情况选择最适合的方法来实现这个操作。

  
  

评论区

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