'For every instance of a character/substring in string

I have a string in C++ that looks like this:

string word = "substring"

I want to read through the word string using a for loop, and each time an s is found, print out "S found!". The end result should be:

S found!
S found!


Solution 1:[1]

Maybe you could utilize toupper:

#include <iostream>
#include <string>

void FindCharInString(const std::string &str, const char &search_ch) {
  const char search_ch_upper = toupper(search_ch, std::locale());
  for (const char &ch : str) {
    if (toupper(ch, std::locale()) == search_ch_upper) {
      std::cout << search_ch_upper << " found!\n";
    }
  }
}

int main() {
  std::string word = "substring";
  std::cout << word << '\n';
  FindCharInString(word, 's');
  return 0;
}

Output:

substring
S found!
S found!

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1