连接 C++ 中 3 个或更多元素的字符串(字符串[i]+字符串[i+1]+字符串[i+2])

Concatenating Strings for 3 or More Elements in C++ (string[i]+string[i+1]+string[i+2])

本文关键字:字符串 i+2 i+1 C++ 元素 连接      更新时间:2023-10-16

我很难学习如何连接具有 3 个或更多元素的字符串。这是我现在正在处理的代码:

string msgASCII, conHolder;    
for (int i = 0; i < msgASCII.length(); i = i + 3) { 
        conHolder = msgASCII[i] + msgASCII[i+1] + msgASCII[i+2];    

这段代码似乎没有按预期工作。我正在尝试做的是使conHolder =我的字符串msgASCII的前三个元素。因此,如果 msgASCII = 083097109(对于 ASCII 中的 SAM),那么我想让 conHolder = "083",以便我以后可以将其转回 char。

我也尝试这样做:

for (int i = 0; i < msgASCII.length(); i = i + 3) { 
        concatenateHolder = msgASCII[i] + msgASCII[i+1] + msgASCII[i+2];
        concatenateHolder2 = concatenateHolder + msgASCII[i+2];

但是 concatenateHolder 将返回 h,concatenateHolder2 将返回 h3。

编辑:我想我可能已经找到了我在下面发布的解决方案!也感谢弗雷德的子字符串方法。我很可能会使用它。

我想

我可能已经找到了我的问题的解决方案。有关更多信息,msgASCII,conHolder和concatenateHolder都是字符串类型。

一个解决方案是Fred Larson所说的,使用std::string::substr。我想我可能会这样做,因为这似乎很方便。

我发现但尚未测试的另一种方法是将第一个值 [0] 乘以 100,第二个 [1] 乘以 10,第三个 [2] 乘以 1(或根本不需要乘以),然后将它们加在一起。我还没有尝试过这段代码,但我认为它应该可以工作!