как записать элементы строки в определенной последовательности?

Ответить
nikitoz_ru
Сообщения: 9
Зарегистрирован: 07 июн 2009, 14:03

нужно записать элементы строки следующим образом:сначала записываем все элементы с четными индексами, а затем все элементы с нечетными индексами ( с сохранением их относительного порядка в каждой группе). Например, abcdefgh => acegbdfh, vwxyz => vxzwy.
за ранее благодарен за любую помощь.
azrael
Сообщения: 89
Зарегистрирован: 31 май 2009, 15:30
Контактная информация:

это вопрос или просьба решить задачу? :) ))
nikitoz_ru
Сообщения: 9
Зарегистрирован: 07 июн 2009, 14:03

azrael писал(а):это вопрос или просьба решить задачу? :) ))
сможешь решить заплачу
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Тут можно предложить 2 агоритма:
1)
Сначала в цикле по нечетным, а затем в цикле по четным элементам (шагом 2) s прибавлять к результирующей строке
2)
В цикле по строке "раскидать" все элементы по двум строкам, а потом эти строки сцепить
azrael
Сообщения: 89
Зарегистрирован: 31 май 2009, 15:30
Контактная информация:

nikitoz_ru писал(а):сможешь решить заплачу
Я спросил потому, что надо точнее задавать вопрос, неясно, что вы хотели :)
А деньги за это брать даж смешно, если все-таки желаете - могу принять символическую сумму :)
Код:

Код: Выделить всё

#include <iostream>
using namespace std;

int main(int argc, char *argv[]) {

	cout << "\nLine: ";
	const int lineLength = 256;
	char lineBuffer[lineLength] = "\0";
	cin >> lineBuffer;

	char resultBuffer[lineLength] = "\0";

	int j = 0;
	for (int i = 0; i < lineLength; i+=2) {
		if (lineBuffer[i] != '\0')	
			resultBuffer[j++] = lineBuffer[i];
		else break;
	}
	for (int i = 1; i < lineLength; i+=2) {
		if (lineBuffer[i] != '\0') 
			resultBuffer[j++] = lineBuffer[i];
		else break;
	}

	cout << "\nResult: " << resultBuffer << '\n';
	return 0;
}
nikitoz_ru
Сообщения: 9
Зарегистрирован: 07 июн 2009, 14:03

Naeel Maqsudov писал(а):Тут можно предложить 2 агоритма:
1)
Сначала в цикле по нечетным, а затем в цикле по четным элементам (шагом 2) s прибавлять к результирующей строке
2)
В цикле по строке "раскидать" все элементы по двум строкам, а потом эти строки сцепить

это понятно а как из строки выбрать четный элемент скажите хотя бы какую функцию применить?
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Иногда, прежде чем написать очередное сообщение полезно еще раз нажать F5. :) Возможно решение уже написали.
nikitoz_ru
Сообщения: 9
Зарегистрирован: 07 июн 2009, 14:03

спасибо помог ;)
Ответить