#include <iostream>
#include <string>
/**
* return the last n characters of a string,
* unless n >= length of the input or n <= 0, in which case return ""
*/
std:: string lastN( std:: string input, int n) {
int inputSize = input.size ( ) ;
return ( n > 0 && inputSize > n) ? input.substr ( inputSize - n) : "ccc" ;
}
int main( )
{
std:: string stringToCheck = "0111111" ;
std:: string lastN( stringToCheck, 4 ) ;
std:: cout << "Whole String (stringToCheck): \n \n " ;
std:: cout << stringToCheck;
std:: cout << "\n --- \n \n " ;
std:: cout << "Substring (stringToCheck - n Characters \n e.g. if n = 4, indices 0,1,2,3 get removed from the string): \n \n " ;
std:: cout << lastN;
std:: cout << "\n --- \n \n " ;
std:: string stringArray[ ] = { "0111123" , "0111456" , "0111789" , "0111101" } ;
int length = sizeof ( stringArray) / sizeof ( stringArray[ 0 ] ) ;
std:: cout << "Array String items before substrings extraction and iterations indices: \n \n " ;
for ( int i = 0 ; i < length; i++ )
{
std:: cout << stringArray[ i] << " " << i << " \n " ;
}
std:: cout << "--- \n \n " ;
std:: cout << "Array String items after substrings extraction and iterations indices: \n \n " ;
std:: cout << "Substring (stringArray[i] - n Characters \n e.g. if n = 4, indices 0,1,2,3 get removed from the string): \n \n " ;
for ( int i = 0 ; i < length; i++ )
{
std:: string lastN( stringArray[ i] , 4 ) ;
std:: cout << lastN << " " << i << " \n " ;
}
std:: cout << "---\n " ;
return 0 ;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDxzdHJpbmc+CiAgICAvKioKICAgICogcmV0dXJuIHRoZSBsYXN0IG4gY2hhcmFjdGVycyBvZiBhIHN0cmluZywKICAgICogdW5sZXNzIG4gPj0gbGVuZ3RoIG9mIHRoZSBpbnB1dCBvciBuIDw9IDAsIGluIHdoaWNoIGNhc2UgcmV0dXJuICIiCiAgICAqLwogICAgc3RkOjpzdHJpbmcgbGFzdE4oc3RkOjpzdHJpbmcgaW5wdXQsIGludCBuKSB7CiAgICAgICAgaW50IGlucHV0U2l6ZSA9IGlucHV0LnNpemUoKTsKICAgICAgICByZXR1cm4gKG4gPiAwICYmIGlucHV0U2l6ZSA+IG4pID8gaW5wdXQuc3Vic3RyKGlucHV0U2l6ZSAtIG4pIDogImNjYyI7CiAgICB9CiAgICAgCiAgICBpbnQgbWFpbigpIAogICAgewogICAgCXN0ZDo6c3RyaW5nIHN0cmluZ1RvQ2hlY2sgPSAiMDExMTExMSI7CiAgICAgCiAgICAgICAgc3RkOjpzdHJpbmcgbGFzdE4oc3RyaW5nVG9DaGVjaywgNCk7CiAgICAgCiAgICAgICAgc3RkOjpjb3V0IDw8ICJXaG9sZSBTdHJpbmcgKHN0cmluZ1RvQ2hlY2spOiBcblxuIjsKICAgICAgICBzdGQ6OmNvdXQgPDwgc3RyaW5nVG9DaGVjazsKICAgICAgICBzdGQ6OmNvdXQgPDwgIlxuLS0tIFxuXG4iOwogICAgIAogICAgICAgIHN0ZDo6Y291dCA8PCAiU3Vic3RyaW5nIChzdHJpbmdUb0NoZWNrIC0gbiBDaGFyYWN0ZXJzIFxuZS5nLiBpZiBuID0gNCwgaW5kaWNlcyAwLDEsMiwzIGdldCByZW1vdmVkIGZyb20gdGhlIHN0cmluZyk6IFxuXG4iOwogICAgICAgIHN0ZDo6Y291dCA8PCBsYXN0TjsKICAgICAgICBzdGQ6OmNvdXQgPDwgIlxuLS0tIFxuXG4iOwogICAgICAgIAogICAgICAgIHN0ZDo6c3RyaW5nIHN0cmluZ0FycmF5W10gPSB7ICIwMTExMTIzIiwgIjAxMTE0NTYiLCAiMDExMTc4OSIsICIwMTExMTAxIiB9OwogICAgICAgIGludCBsZW5ndGggPSBzaXplb2Yoc3RyaW5nQXJyYXkpIC8gc2l6ZW9mKHN0cmluZ0FycmF5WzBdKTsKICAgICAgICAKICAgICAgICBzdGQ6OmNvdXQgPDwgIkFycmF5IFN0cmluZyBpdGVtcyBiZWZvcmUgc3Vic3RyaW5ncyBleHRyYWN0aW9uIGFuZCBpdGVyYXRpb25zIGluZGljZXM6IFxuXG4iOwogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCBzdHJpbmdBcnJheVtpXSA8PCAiICIgPDwgaSA8PCAiIFxuIjsKICAgICAgICB9CiAgICAgICAgc3RkOjpjb3V0IDw8ICItLS0gXG5cbiI7CiAgICAgICAgCiAgICAgICAgc3RkOjpjb3V0IDw8ICJBcnJheSBTdHJpbmcgaXRlbXMgYWZ0ZXIgc3Vic3RyaW5ncyBleHRyYWN0aW9uIGFuZCBpdGVyYXRpb25zIGluZGljZXM6IFxuXG4iOwogICAgICAgIHN0ZDo6Y291dCA8PCAiU3Vic3RyaW5nIChzdHJpbmdBcnJheVtpXSAtIG4gQ2hhcmFjdGVycyBcbmUuZy4gaWYgbiA9IDQsIGluZGljZXMgMCwxLDIsMyBnZXQgcmVtb3ZlZCBmcm9tIHRoZSBzdHJpbmcpOiBcblxuIjsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBzdGQ6OnN0cmluZyBsYXN0TihzdHJpbmdBcnJheVtpXSwgNCk7CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCBsYXN0TiA8PCAiICIgPDwgaSA8PCAiIFxuIjsKICAgICAgICB9CiAgICAgICAgc3RkOjpjb3V0IDw8ICItLS1cbiI7CiAgICAgCiAgICAgCiAgICAJcmV0dXJuIDA7CiAgICB9
stdout
Whole String (stringToCheck):
0111111
---
Substring (stringToCheck - n Characters
e.g. if n = 4, indices 0,1,2,3 get removed from the string):
111
---
Array String items before substrings extraction and iterations indices:
0111123 0
0111456 1
0111789 2
0111101 3
---
Array String items after substrings extraction and iterations indices:
Substring (stringArray[i] - n Characters
e.g. if n = 4, indices 0,1,2,3 get removed from the string):
123 0
456 1
789 2
101 3
---