私は最終的な目的が単純な暗号化を行うことである配列に対していくつかの操作を実行しようとしています。しかし、とにかく私の配列は長さが458文字で、大半は文字とコンマ、ピリオドなどで構成されています。配列の最後の文字から始めて、最初の文字と大文字の配列のすべての文字に行きます。それは最後の文字 "#"を正しく読み込みますが、forループの次のステップは4文字以上で、いくつかの文字をスキップします。私のコントロールロジックに何か問題がありますか?あなたのif
文のelse
足でループロジック、暗号化配列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