C/C++

Программирование С++, помогите,пожалуйста

Даны 2 слова Образовать новую символьную переменную, в которой должны чередоваться буквы первого и второго слова. использовать склейку «+»)( (не использовать find, erase, substr…)Даны 2 слова Образовать новую символьную переменную, в которой должны чередоваться буквы первого и второго слова. использовать склейку «+»)( (не использовать find, erase, substr…)
DG
Davron Gadoev
184
Как-то так:
 w1, w2 = input(), input()
l1, l2 = len(w1), len(w2)
lm = min(l1, l2)
wr = ''.join(w1[i] + w2[i] for i in range(lm))
if len(w1) != len(w2):
wr += (w1 if len(w1) > len(w2) else w2)[lm:]
print(wr)
А, там C++ нужен...
Ну, тогда:
 #include 
#include

using namespace std;

int main() {
string w1, w2;
cin >> w1 >> w2;
const size_t l1 = w1.size(), l2 = w2.size();
const size_t lm = min(l1, l2);
string wr;
for (size_t i = 0; i < lm; i++)
wr = wr + w1[i] + w2[i];
if (l1 != l2) {
const string &wm = l1 > l2 ? w1 : w2;
for (size_t i = lm; i < wm.size(); i++)
wr += wm[i];
}
cout
Михаил Левочкин
Михаил Левочкин
87 571
Лучший ответ
Davron Gadoev спасибо,а можно как-то для новичков,а то я недавно начал плюсы изучать
Davron Gadoev а если длина зависит от текста,который впишет
пользователь
Davron Gadoev ну,объяснить
 #include   
using namespace std;

int main()
{
string str1, str2, result;
cin >> str1 >> str2; //ввод слов
size_t i1 = 0, i2 = 0; //индексы текущих букв
bool blk1 = true, blk2 = true; //флаги доступности слов для извлечения из них буквы
do
{
if (blk1&&(blk1=i1 < str1.size())) //если первое слово не закончилось
result = result + str1[i1++]; //плюсуем его букву под этим номером и переходим к следующей
if (blk2&&(blk2=i2 < str2.size())) //аналогично для второго слова
result = result + str2[i2++];
//если какое-то слово закончилось (индекс превышает размер), его blk станет = 0 и запретит соответсвующий if
} while (blk1 || blk2); //цикл продолжается пока хоть одно слово не под запретом
cout