string动态字符串数据貌似溢出缓冲区,在网上未能查阅到相关资料,求解答与订正。
问题
#include<bits/stdc++.h>
using namespace std;
int same_num(string x, char y)
{
int num = 0;
for (int i = 0; i < x.length(); i++)
{
if (x[i] == y)
{
num++;
}
}
return num;
}
int solve_p(string X,char Y)
{
string* xx = new string[same_num(X, Y)]();
for (int i = 0; i < same_num(X, Y); i++)
{
xx[i] = Y;//报错处
}
int px;
stringstream Px;
Px << xx;
Px >> px;
return px;
}
int main()
{
string A, B;
char a, b;
cin >> A >> a >> B >> b;
cout << same_num(A, a) << " "<<same_num(B, b);
cout << solve_p(A, a)<<" "<< solve_p(B, b);
return 0;
}
报错:
能正常运行但每次输入数据所得结果都为随机数。