gpt4 book ai didi

c++ - C++中的字符串处理和内存管理

转载 作者:行者123 更新时间:2023-11-28 01:03:20 25 4
gpt4 key购买 nike

我有一定的字符串处理要做,我使用的方法是在下面的示例中-

Void ProcessObjects(int nObject)
{
std::string sInfostr;

for(int i = 0;i<nObject;i++)
{
InfoObject Inf = new InfoObject;
GetInfoObject(&Inf);
GetStoredInformation(Inf, std::string &sInfostr)
delete Inf;
}
}


void GetStoredInformation(InfoObject Inf, std::string &sInfostr)
{
char tag[1000];

GetInformation(&Inf);

sprintf(tag, "name=%s",Inf.name);
sInfostr += tag;
sprintf(tag, "name1=%s",Inf.name1);
sInfostr += tag;
sprintf(tag, "name2=%s",Inf.name2);
sInfostr += tag;
sprintf(tag, "name3=%s",Inf.name3);
sInfostr += tag;
sprintf(tag, "name4=%s",Inf.name4);
}

现在我可以得到一些建议是处理字符串的好方法吗?如果“nObject”超过 10,000,我的代码会遇到麻烦吗?

最佳答案

我建议您使用 std::istringstream 而不是旧的 C-ish sprintf:

void GetStoredInformation(InfoObject Inf, std::string &sInfostr) 
{
GetInformation(&Inf);
std::istringstream stream();
stream << "name=" << Inf.name
<< "name1=" << Inf.name1
<< "name2=" << Inf.name2
<< "name3=" << Inf.name3
<< "name4=" << Inf.name4;
sInfostr = stream.str();
}

Will I code go in any trouble if "nObject" above 10,000?

取决于您使用的硬件,从 C++ 的角度来看,这应该不是问题,除非您的 InfoObject 不是非常大。

关于c++ - C++中的字符串处理和内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7710256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com