// string::substr
#include <iostream>
#include <string>

int main ()
{
std::string stringToCheck = "UP";
std::string stringArray[] = { "UP", "DOWN", "DOWN", "UP" };

std::string concatstring;

auto replaceAll = [](std::string& s, std::string o, std::string n){ while(s.find(o) != std::string::npos) s.replace(s.find(o), o.size(), n); };

std::cout << "stringToCheck before replacement: \n";
std::cout << stringToCheck << " \n";
replaceAll(stringToCheck, "UP", "1"); // Changes stringToCheck to "1"
replaceAll(stringToCheck, "DOWN", "0"); // Changes stringToCheck to "0"
std::cout << "stringToCheck after replacement: \n";
std::cout << stringToCheck;

std::cout << "\n----\n";
int length = sizeof(stringArray) / sizeof(stringArray[0]);
concatstring = ""; // Reset concat for each loop iteration
std::cout << "Array String items before replacement and iterations indices: \n";
for(int i = 0; i < length; i++)
{
    std::cout << stringArray[i] << " " << i << " \n";
    concatstring += stringArray[i];
}

std::cout << "----\n";
std::cout << "Concatenated String: \n";
std::cout << concatstring;
replaceAll(concatstring, "UP", "1"); // Changes concatstring "UP" substrings to "1"
replaceAll(concatstring, "DOWN", "0"); // Changes concatstring "DOWN" substrings to "0"
std::cout << "\n----\n";
std::cout << "Concatenated String replaced: \n";
std::cout << concatstring;

std::cout << "\n---\n";
std::cout << "Array String items after replacement and iterations indices: \n";
for(int i = 0; i < length; i++)
{
    replaceAll(stringArray[i], "UP", "1"); // Changes stringArray[i] "UP" items to "1"
    replaceAll(stringArray[i], "DOWN", "0"); // Changes stringArray[i] "DOWN" items to "0"
    std::cout << stringArray[i] << " " << i << " \n";
}

return 0;
}