Ask Your Question
1

How can a string be inserted into a vector before every occurrence of a string that includes a specific pattern?

asked 2021-04-23 11:00:00 +0000

david gravatar image

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
3

answered 2023-01-31 18:00:00 +0000

lalupa gravatar image

Here is one way to insert a string into a vector before every occurrence of a string that includes a specific pattern using C++ programming language:

  1. Iterate through each string in the vector.
  2. Use the find() function to check if the string includes the specific pattern.
  3. If the pattern is found, use the insert() function to insert the new string before the pattern.
  4. Update the index of the next string to check, since the size of the vector has changed.
  5. Repeat steps 2-4 until all strings in the vector have been checked.

Here is an example code to do this:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    vector<string> vec = {"hello apple", "banana", "orange pie", "apple pie"};

    string pattern = "apple";
    string new_str = "delicious ";

    for (int i = 0; i < vec.size(); i++)
    {
        size_t found = vec[i].find(pattern);
        if (found != string::npos)
        {
            vec.insert(vec.begin() + i, new_str);
            i++; // update index since vector size has increased
        }
    }

    for (auto str : vec)
    {
        cout << str << endl;
    }

    return 0;
}

This code will output:

hello delicious apple
banana
delicious orange pie
delicious apple pie
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss

Add Answer


Question Tools

Stats

Asked: 2021-04-23 11:00:00 +0000

Seen: 9 times

Last updated: Jan 31 '23