i'm a C++ beginner. I figured out that spaces before input can be calculated by the formula total row - current row number. However, i failed to figure out how to display input backwards. I know C++ does not support negative index. Could anyone please help me out? I'd really appreciate your help. Thank you!
the expected result:
If the user enters 'ABCDEFG', then your program should display:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
ABCDEFEDCBA
ABCDEFGFEDCBA
My current result:
A
ABC
ABCDE
ABCDEFG
ABCDEFGAB
ABCDEFGABCD
ABCDEFGABCDEF
Code:
#include <iostream>
#include <string>
int main(){
std::string user_input;
std::cout << "Please enter something" << std::endl;
std::cin >> user_input;
size_t total_row = user_input.size();
for(size_t row {1}; row <= total_row; row++){
for(size_t blank {total_row-row}; blank >= 1; blank--)
std::cout << " ";
if ( total_row <= 1){
std::cout << user_input;
}
else {
for(size_t i {0}; i < ((row * 2) - 1); i++)
if (i >= total_row){
std::cout << user_input.at(i - total_row);
}
else{
std::cout << user_input.at(i);
}
}
std::cout << std::endl;
}
}