Необходимо поэлементно соединить 2 массива типа char. Программа написана на BorlandC.
Есть функция strcat(), но она только для массивов. А вот для поэлементного соединения не могу ничего придумать.
Другие языки программирования и технологии
C++ поэлементное соденение массивов
а вручную не вариант?
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 раз вызвать и записать куда-нибудь, исходные строки все равно не меняются
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 раз вызвать и записать куда-нибудь, исходные строки все равно не меняются
Зло... хорошо пишешь, но так не ясно для начинающих :)
Если дан 1 массив "1234"
Если дан 2 массив "5678"
То поэлементно, это 1 элемент с 1
"15263748"
а если так:
Если дан 1 массив "123"
Если дан 2 массив "56789"
То поэлементно, это 1 элемент с 1
"15263789"
а если так:
Если дан 1 массив "123490"
Если дан 2 массив "5678"
То поэлементно, это 1 элемент с 1
"1526374890"
Ну работает конечно, но кому-то уже писал про вызовы strlen() в for и если глянуть асм то видно, сколько лишних вызовов от этого, потому тоже код трудно читаем.... на да ладно, вам главное сдать
Если дан 1 массив "1234"
Если дан 2 массив "5678"
То поэлементно, это 1 элемент с 1
"15263748"
а если так:
Если дан 1 массив "123"
Если дан 2 массив "56789"
То поэлементно, это 1 элемент с 1
"15263789"
а если так:
Если дан 1 массив "123490"
Если дан 2 массив "5678"
То поэлементно, это 1 элемент с 1
"1526374890"
Ну работает конечно, но кому-то уже писал про вызовы strlen() в for и если глянуть асм то видно, сколько лишних вызовов от этого, потому тоже код трудно читаем.... на да ладно, вам главное сдать
Похожие вопросы
- C++ задача про массив
- C#. Элементы одномерного массива размером 7, которые больше среднего значения элементов массива, заменить на 0.
- C++ Шаблоны с массивами
- C++ задание по массивам
- Помогите пожалуйста написать программу на c++. Циклически сдвинуть массив на k элементов влево.
- Что делаю не так? C++.Удаление элемента массива
- C++ многомерный ассоциативный массив
- При введении программы на Pascal ABC выдается ошибка "нельзя вводить данные типа "массив", массивы вводятся поэлементно
- C++ Двухмерный массив с случайными не повторяющимися числами.
- Всем привет. Никак не могу понять динамически массивы в C++.