Другие языки программирования и технологии

C++ поэлементное соденение массивов

Необходимо поэлементно соединить 2 массива типа char. Программа написана на BorlandC.
Есть функция strcat(), но она только для массивов. А вот для поэлементного соединения не могу ничего придумать.
а вручную не вариант?
char* str = new char[ strlen( str1 ) + strlen( str2 ) + 1 ];
int s1 = 0;
int s2 = 0;
for( int i = 0; i < strlen( str1 ) + strlen( str2 ) ; )
{
if( s1 < strlen( str1) ) str[ i++ ] = str1[ s1++ ];
if( s2 < strlen( str2 ) ) str[ i++ ] = str2[ s2++ ];
}
str[ strlen( str1 ) + strlen( str2 ) ] = 0;

тю, массивы фиксированной длины - это не интересно =)))
а так - согласен, лучше каждый strlen 1 раз вызвать и записать куда-нибудь, исходные строки все равно не меняются
Жасулан Жункобаев
Жасулан Жункобаев
38 447
Лучший ответ
Зло... хорошо пишешь, но так не ясно для начинающих :)

Если дан 1 массив "1234"
Если дан 2 массив "5678"
То поэлементно, это 1 элемент с 1
"15263748"

а если так:
Если дан 1 массив "123"
Если дан 2 массив "56789"
То поэлементно, это 1 элемент с 1
"15263789"

а если так:
Если дан 1 массив "123490"
Если дан 2 массив "5678"
То поэлементно, это 1 элемент с 1
"1526374890"

Ну работает конечно, но кому-то уже писал про вызовы strlen() в for и если глянуть асм то видно, сколько лишних вызовов от этого, потому тоже код трудно читаем.... на да ладно, вам главное сдать
Семён Баранов
Семён Баранов
64 721