2016-11-19 50 views
-4

想我再也下面的代码如何通过C++中的两个字符串交替字符串连接字符串?

std::string st1 = "ab"; 
std::string st2 = "xyz"; 

我想通过交替字符,使输出

std::string output = "axbyz"; 

我怎么能在C++中做到这一点来连接这些字符串?

我可以连接使用'+'。

+3

这不是代码,将编译,所以很难回答。但是,如果你有std :: string类型,你可以用“+”运算符连接它们。 –

+2

拿出一张空白的纸和一支笔。以简单,简单的步骤写下执行此操作的逻辑算法。 [在用你的橡皮鸭讨论你提出的算法之后](https://en.wikipedia.org/wiki/Rubber_duck_debugging),一旦你的橡皮鸭认同你的算法有效,就直接把它转换成C++。任务完成。 –

+2

那么,你可以通过从每个字符串中逐一获取字符,并将它们连接成一个新字符串。哪部分是你有difficulti?循环播放这些字符串?从给定索引处的字符串获取字符? – hyde

回答

2

的输出应每串交替人物:

std::string res = ""; 
for(int i = 0; i < std::max(a.size(), b.size()); i++){ 
    if (i < a.size()) 
     res += a[i]; 
    if (i < b.size()) 
     res += b[i]; 
} 
+0

为什么不简单:直接将它们相加而不是循环? – Raindrop7

+0

你最好希望你有一个高质量的编译器,可以发现'std :: max(a.size(),b.size())'是一个常量,只需要评估一次,而不是循环的每一次迭代。 –

+0

因为OP想让字符是_alternating_。 – sygi