使用strcpy函数后输出出错。

    cin>>baseNumber;
    cin>>insertNumber;
    char s1[n1]={0};
    char s2[n2]={0};
    cout<<"基准数为:"<<baseNumber<<endl;
    cout<<"插入数为:"<<insertNumber<<endl;
    strcpy(s1,baseNumber.c_str()) ;

    strcpy(s2,insertNumber.c_str());
    cout<<baseNumber.c_str()<<endl;
    cout<<insertNumber.c_str()<<endl;
    cout<<s1<<endl;
    cout<<s2<<endl;

 

 

结果运行后是这样的

1234 25
基准数为:1234
插入数为:25
1234
25
25
25

请问cout<<s1<<endl;为什么会输出25,也就是s2的内容。

我输出s1的是1234,你前面代码是什么

    string baseNumber, insertNumber;
    int const n1 = 30, n2 = 30;
    cin >> baseNumber;
    cin >> insertNumber;
    char s1[n1] = { 0 };
    char s2[n2] = { 0 };
    cout << "基准数为:" << baseNumber << endl;
    cout << "插入数为:" << insertNumber << endl;
    strcpy(s1, baseNumber.c_str());

    strcpy(s2, insertNumber.c_str());
    cout << baseNumber.c_str() << endl;
    cout << insertNumber.c_str() << endl;
    cout << s1 << endl;
    cout << s2 << endl;