33,311
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <string>
#include <cstring>
#include <cstddef>
using namespace::std;
int main()
{
string str;
cout << "Enter string: " << endl;
cin >> str;
const size_t len = str.size();
char *new_str = new char[len + 1];//这里不必改
strncpy(new_str, str.c_str(), len);
new_str[len + 1] = '\0';//这里应该是new_str[len] = '\0';len+1的话就越界了
cout << new_str << endl;
delete [] new_str;
return 0;
}
#include <iostream>
#include <string>
#include <cstring>
#include <cstddef>
using namespace::std;
int main()
{
string str;
cout << "Enter string: " << endl;
cin >> str;
const size_t len = str.size();
char *new_str = new char[len + 2];//数组越界
strncpy(new_str, str.c_str(), len);
new_str[len + 1] = '\0';
cout << new_str << endl;
delete [] new_str;
return 0;
}