// 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 ;
}
Ly8gc3RyaW5nOjpzdWJzdHIKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKaW50IG1haW4gKCkKewpzdGQ6OnN0cmluZyBzdHJpbmdUb0NoZWNrID0gIlVQIjsKc3RkOjpzdHJpbmcgc3RyaW5nQXJyYXlbXSA9IHsgIlVQIiwgIkRPV04iLCAiRE9XTiIsICJVUCIgfTsKCnN0ZDo6c3RyaW5nIGNvbmNhdHN0cmluZzsKCmF1dG8gcmVwbGFjZUFsbCA9IFtdKHN0ZDo6c3RyaW5nJiBzLCBzdGQ6OnN0cmluZyBvLCBzdGQ6OnN0cmluZyBuKXsgd2hpbGUocy5maW5kKG8pICE9IHN0ZDo6c3RyaW5nOjpucG9zKSBzLnJlcGxhY2Uocy5maW5kKG8pLCBvLnNpemUoKSwgbik7IH07CgpzdGQ6OmNvdXQgPDwgInN0cmluZ1RvQ2hlY2sgYmVmb3JlIHJlcGxhY2VtZW50OiBcbiI7CnN0ZDo6Y291dCA8PCBzdHJpbmdUb0NoZWNrIDw8ICIgXG4iOwpyZXBsYWNlQWxsKHN0cmluZ1RvQ2hlY2ssICJVUCIsICIxIik7IC8vIENoYW5nZXMgc3RyaW5nVG9DaGVjayB0byAiMSIKcmVwbGFjZUFsbChzdHJpbmdUb0NoZWNrLCAiRE9XTiIsICIwIik7IC8vIENoYW5nZXMgc3RyaW5nVG9DaGVjayB0byAiMCIKc3RkOjpjb3V0IDw8ICJzdHJpbmdUb0NoZWNrIGFmdGVyIHJlcGxhY2VtZW50OiBcbiI7CnN0ZDo6Y291dCA8PCBzdHJpbmdUb0NoZWNrOwoKc3RkOjpjb3V0IDw8ICJcbi0tLS1cbiI7CmludCBsZW5ndGggPSBzaXplb2Yoc3RyaW5nQXJyYXkpIC8gc2l6ZW9mKHN0cmluZ0FycmF5WzBdKTsKY29uY2F0c3RyaW5nID0gIiI7IC8vIFJlc2V0IGNvbmNhdCBmb3IgZWFjaCBsb29wIGl0ZXJhdGlvbgpzdGQ6OmNvdXQgPDwgIkFycmF5IFN0cmluZyBpdGVtcyBiZWZvcmUgcmVwbGFjZW1lbnQgYW5kIGl0ZXJhdGlvbnMgaW5kaWNlczogXG4iOwpmb3IoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspCnsKICAgIHN0ZDo6Y291dCA8PCBzdHJpbmdBcnJheVtpXSA8PCAiICIgPDwgaSA8PCAiIFxuIjsKICAgIGNvbmNhdHN0cmluZyArPSBzdHJpbmdBcnJheVtpXTsKfQoKc3RkOjpjb3V0IDw8ICItLS0tXG4iOwpzdGQ6OmNvdXQgPDwgIkNvbmNhdGVuYXRlZCBTdHJpbmc6IFxuIjsKc3RkOjpjb3V0IDw8IGNvbmNhdHN0cmluZzsKcmVwbGFjZUFsbChjb25jYXRzdHJpbmcsICJVUCIsICIxIik7IC8vIENoYW5nZXMgY29uY2F0c3RyaW5nICJVUCIgc3Vic3RyaW5ncyB0byAiMSIKcmVwbGFjZUFsbChjb25jYXRzdHJpbmcsICJET1dOIiwgIjAiKTsgLy8gQ2hhbmdlcyBjb25jYXRzdHJpbmcgIkRPV04iIHN1YnN0cmluZ3MgdG8gIjAiCnN0ZDo6Y291dCA8PCAiXG4tLS0tXG4iOwpzdGQ6OmNvdXQgPDwgIkNvbmNhdGVuYXRlZCBTdHJpbmcgcmVwbGFjZWQ6IFxuIjsKc3RkOjpjb3V0IDw8IGNvbmNhdHN0cmluZzsKCnN0ZDo6Y291dCA8PCAiXG4tLS1cbiI7CnN0ZDo6Y291dCA8PCAiQXJyYXkgU3RyaW5nIGl0ZW1zIGFmdGVyIHJlcGxhY2VtZW50IGFuZCBpdGVyYXRpb25zIGluZGljZXM6IFxuIjsKZm9yKGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKQp7CiAgICByZXBsYWNlQWxsKHN0cmluZ0FycmF5W2ldLCAiVVAiLCAiMSIpOyAvLyBDaGFuZ2VzIHN0cmluZ0FycmF5W2ldICJVUCIgaXRlbXMgdG8gIjEiCiAgICByZXBsYWNlQWxsKHN0cmluZ0FycmF5W2ldLCAiRE9XTiIsICIwIik7IC8vIENoYW5nZXMgc3RyaW5nQXJyYXlbaV0gIkRPV04iIGl0ZW1zIHRvICIwIgogICAgc3RkOjpjb3V0IDw8IHN0cmluZ0FycmF5W2ldIDw8ICIgIiA8PCBpIDw8ICIgXG4iOwp9CgpyZXR1cm4gMDsKfQ==