首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将向量中的所有元素组合成一个新的字符串MFC VC++。

将向量中的所有元素组合成一个新的字符串MFC VC++。
EN

Stack Overflow用户
提问于 2020-11-11 07:37:35
回答 1查看 130关注 0票数 1

我试图将向量中的所有元素合并为一个新的字符串,但我无法获得如何做到这一点的示例。大多数示例都是在向量之间以及在C++ std::cout中级联的。我不知道如何在MFC VC++中这样做。

假设我有一个向量(在CString中),其中包含元素I am a naughty boy。如何将它们组合起来,并将它们保存为

CString str;

str = "I am a naughty boy"

编辑:

代码语言:javascript
复制
struct REVLISTDATA {
CString str_;
REVLISTDATA(CString str_element) : str_(str_element) {}
};
std::vector<REVLISTDATA> vec;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-11 08:22:45

如果我完全理解你的要求,这里有一个方法:

代码语言:javascript
复制
for (size_t i = 0; i < vec.size(); ++i)
{
    str.AppendFormat(vec.at(i));
    if (i < vec.size() - 1)
        str.AppendFormat(_T(" "));  // spaces between words
}

假定您的vecstd::vector<CString>

编辑:所以,而不是str.AppendFormat(vec.at(i));,您应该使用str.AppendFormat(vec.at(i).str_);

稍后编辑:我已经尝试了以下代码并正常工作:

代码语言:javascript
复制
struct REVLISTDATA
{
    CString str_;
    REVLISTDATA(CString str_element) : str_(str_element) {}
};

std::vector<REVLISTDATA> vec;

vec.push_back(REVLISTDATA("I"));
vec.push_back(REVLISTDATA("am"));
vec.push_back(REVLISTDATA("a"));
vec.push_back(REVLISTDATA("naughty"));
vec.push_back(REVLISTDATA("boy"));

CString str;
for (size_t i = 0; i < vec.size(); ++i)
{
    str.AppendFormat(vec.at(i).str_);
    if (i < vec.size() - 1)
        str.AppendFormat(_T(" "));  // spaces between words
}

所以,我想你的例外是来自另一种方式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64782260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档