Кажется, это должно быть довольно просто, но я борюсь с этим вопросом. Я пытаюсь поменять 2 элемента массива символов (предпочитают не использовать указатели) очень определенным образом. У меня есть массив, называемый buffer, в котором есть текстовая строка. Если индекс нечетный, тогда этот элемент нужно поменять местами с помощью «зеркального аналога» (т. Е. Если индекс является буфером [5]), тогда его необходимо заменить 5-м элементом с конца массива. . псевдокод для него, но я не могу реализовать Вот моя трещина на него (это, наверное, ужасный код, заметьте):Элементы свопинга в массиве символов
while(i<strlen(buffer)/2){
if(i%2 ==1){
temp = buffer[i];
buffer[i] = buffer[strlen(buffer)-i-1];
buffer[strlen(buffer)-i-1] = temp;
}
i++;
}
Вот псевдо-код для дальнейшего уточнения:
for each char resp[x] in the sending buffer resp
if the index of resp[x] is odd // resp[0] is the first element, hence its index is 1 (i.e., odd)
switch the value of resp[x] and resp[len(resp)-x-1];
endif
end for
EDIT
Questio n, что у меня есть, как мне поменять элементы массива? Попытка этот метод не совсем очистить мой массив, как я хочу ... Это алгоритм дешифровки, и я пытаюсь использовать его, чтобы выправить зашифрованный текст, который находится в buffer[]
EDIT2
Вот скриншот того, что я получаю ... Первый набор разборчивого текста - это то, что является исходным текстом в массиве, второй - это перепутанный массив, а последний фрагмент текста - это то, что должно быть " Cleaned Up ", чтобы выглядеть как оригинальный текст с отметкой времени.
Итак, в чем вопрос? –
Похоже, он должен работать на меня. В чем проблема? Все повторяющиеся вызовы 'strlen()' - плохая идея, но, кроме того, это кажется прекрасным. – Barmar
@Barmar Мой текст по-прежнему беспорядочен и неразборчив. Я мог бы назначить переменную для хранения длины текстовой строки так, чтобы она выглядела лучше, чем –