2016-11-19 56 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