将数组匹配分配给字符串
Assigning an array match to a string
我的程序有两个存储的数组和一个未分配的字符串:
std::string array1 = "red blue green white";
std::string array2 = "white purple yellow red";
std::string str = "";
我可以使用array1.find(array2)
查找是否有匹配,但是我如何获得匹配并将匹配分配给std::string str
。
寻找解决方案,如下所示:
if (array1.find(array2)) str = match;
您可以使用 string::substr
和a for循环查找您的哪个条目。
示例:
std::string theString = "red blue green white";
std::vector<std::string> vectStr = {"white", "purple", "yellow", "red"};
std::string match = "";
for(auto &str : vectStr)
{
auto pos = theString.find(str);
if(pos != std::string::npos)
{
match = theString.substr(pos, str.length());
}
}
然后,您可以进行基本检查,如果循环之后字符串仍然为空,这将意味着 - 无匹配。这将为您带来字符串中的最后一场比赛。如果需要该行为,您可以在if语句中提早返回以获得第一匹匹配。
如果您最初无法创建向量(参数是整个字符串),则可以拆分字符串并创建向量(如果有分隔符,例如,whitespace)。由于我不知道标准的string::split
,您可以使用boost
或自己实施。那里有很多例子。
相关文章:
- 我如何通过引用将 c++ 字符串分配给另一个字符串
- 无法在 c++ 中将字符串分配给字符串数据类型
- 将字符串* 分配给字符* c++
- 如何为C++字符串分配空指针参数?
- 为什么在构造函数中将字符串分配给指针是安全的?
- 如何将wchar_t字符串分配给用户定义类的 CString 成员
- 字符串分配
- 如何将字符串分配给向量(均在堆上)
- 确实为其写入的字符串分配内存
- 简单的字符串分配导致分割故障
- 通过新行不使用字符串流将C 字符串分配
- 将字符串分配到动态数组位置时出错
- 在 c++ 中为字符串分配其分配的大小值是否正确
- 从被空间分开的字符串分配给变量?C [QT]
- 将字符串分配给固定长度的字符数组
- 将一组字符串分配给向量c++的内容
- 如何为字符串分配内存
- C++中的字符串分配:为什么这样做
- 视觉 建议在C++中执行字符串分配什么?
- 字符 *str;str= "HELLO" ;如何在不为字符串分配任何内存的情况下工作?