26 문자 = 13/13 알파벳 대문자로 대문자를 대문자로 바꿀 약간의 함수를 작성하려고합니다. I는 다음 코드를 시도했지만 어떤 이유는 첫 번째 문자 만 작동차이를 계산하여 문자열의 개별 문자의 알파벳 값을 반전합니다.
A = Z, B = Y, C = X ....
"bamba"라고 입력하면됩니다. 그것은 'b'를 'y'로 바꾸는 것으로 시작하지만 그다지 달라 붙지 않고 다른 모든 문자를 'y'로 바꿉니다. 그리고 나는 "yyyyy"를 얻습니다.
코드를 가지고 놀아 보았는데 현재의 문자로 종속성을 제거하면 안전하게 말하자면 1 (a = b, b = c ...)의 문자를 모두 늘릴 수 있다는 것을 발견했습니다
symmetric_difference = 1; **commented out** //21 - toCrypt[i];
나는 모든 것을 보면서 내가 찾은 가장 가까운 것은 "문자열에서 개별 문자의 알파벳 값을 반전" 했지만이 이상하고 중복 보이는 방법을 설명합니다.
누구나 내가 뭘 잘못했는지 말해 줄 수 있습니까?
#include <iostream>
using namespace std;
void crypto(char[]);
int main()
{
char toCrypt[80];
cout << "enter a string:\n";
cin >> toCrypt;
crypto(toCrypt);
cout << "after crypto:\n";
cout << toCrypt;
}
void crypto(char toCrypt[]) // "Folding" encryption.
{
int size = strlen(toCrypt);
int symmetric_difference;
for (int i = 0; i < size; i++)
{
symmetric_difference = 121 - toCrypt[i]; // Calculate the difference the letter has from it's symmetric counterpart.
if (toCrypt[i] >= 97 && toCrypt[i] <= 110) // If the letter is in the lower half on the alphabet,
toCrypt[i] += symmetric_difference; // Increase it by the difference.
else
if (toCrypt[i] >= 111 && toCrypt[i] <= 122) // If it's in the upper half,
toCrypt[i] -= symmetric_difference; // decrease it by the difference.
}
}
와 호환되지 않습니다 당신이 찾고있는 가치. 계산은 간단합니다 :'toCrypt [i] = 121 - toCrypt [i]' – quamrana