Я пытаюсь выполнить некоторые операции над массивом, конечной целью которого является простое шифрование. Но в любом случае мой массив имеет длину 458 символов, состоящий в основном из букв и некоторых запятых, периодов и т. Д. Я пытаюсь начать с последнего символа массива и перейти к первому символу и заглавными буквами в массиве. Он читает последний символ «» правильно, но затем следующий шаг цикла for равен 4 символам и пропускает несколько букв. Что-то не так с моей логикой управления?loop logic, encrypting array C++
void EncryptMessage (ofstream& outFile, char charArray[], int length)
{
int index;
char upperCased;
char current;
for (index = length-1; index <= length; --index)
{
if (charArray[index] >= 'A' && charArray[index] <= 'Z')
{
upperCased = static_cast<char>(charArray[index]);
current = upperCased;
outFile << current;
}
else
{
charArray[index]++;
current = charArray[index];
}
}
}
это работает, но я получаю действительно странный вывод, который находится в случайном порядке, и ни одна из букв не является верхним – user1193717
, неважно, проблема была в инструкции else, где снова был ненужный приращение индекса. отлично работает сейчас – user1193717
Хотите ли вы изменить строчные буквы только заглавными буквами? – hmjd