我想對數組執行一些操作,最終目標是做一個簡單的加密。但無論如何,我的數組長度爲458個字符,主要由字母和一些逗號,句點等組成。我嘗試從數組的最後一個字符開始,並轉到數組中的第一個字符和大寫字母。它會正確讀取最後一個字符「」,但是for循環中的下一步就像4個字符並略過幾個字母。我的控制邏輯有問題嗎?循環邏輯,加密數組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 2012-04-04 15:59:48
沒關係問題是在else語句中,索引再次增加了一個不必要的增量。現在完美工作 – user1193717 2012-04-04 16:05:16
你想只將小寫字母改爲大寫字母嗎? – hmjd 2012-04-04 16:06:01