Yes, I know I'm a very inexperienced programmer but this is a very simple problem that probably has a very simple solution. I'd appreciate anyone's help!

Code:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int number1 = 123;
    char string1 = char(number1);
    
    cout << string1 << endl;    // outputs '2293612'

///////////////////////////////////////
    
    char string2[4] = "123";
    int number2 = int(string2);
    
    cout << string2 << endl;    // outputs '{' because this is the ASCII character "123"
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
In each case I would like the output to be "123." I realize that typecasting won't work. Also, I know I could make an elaborate switch function to get around this but it seems like there must be an easier way. If there is an easy way to do this, could somebody please show me? Thank you very much.

--The struggling C++ student (whose teacher knows nothing)