0
任務:凱撒算法(cipher(c))通過按鍵(k)位置「旋轉」每個字母來加密消息。在保存案例的同時使用密鑰加密文本?
實現:ci =(pi + k)mod26 其中ci是密碼,pi是明文,k是密鑰。
我的僞代碼:從命令行參數
- 獲取密鑰。
- 將密鑰(k)轉換爲整數。
- 爲純文本(PI)
- 每個純文本字符,保存的情況下提示用戶(使用因而isalpha,isupper和islower判斷功能中C.
- 通過例如鍵明文字符最後轉移 - 「回家! 「--- 」惠普Ipnf!「(如果密鑰k = 1,並保留字母/小寫,!仍爲!)。** 我這個。
- 打印密文掙扎。
int main (int argc, string argv[]) //get key from command line argument
{
if (argc != 2 || atoi(argv[1]) < 0)
{
printf ("print valid key");
return 1;
}
int k = atoi(argv[1]);
string p = get_string(); //prompt for plaintext
for (int i=0, n = strlen(p); i < n; i++)
{ if (isalpha('p'))
{
if (isupper('p'))
{
printf ("%c", p[i]);
}
if (islower('p'))
{
printf ("%c", p[i]);
}
}
}
c[i]=(p[i]+k)%26;
printf ("%c", c[i]);
}
有沒有問題在這裏的某個地方? –
剛編輯我的問題。正如我在我的僞代碼中提到的,我正在努力改變這些信件。 – Aakash
'c'是什麼?它沒有在這個範圍內聲明。你有正確的想法,但是當你'%26'結束時你會得到一個介於0到25之間的數字,這些大多數是不可打印的ASCII字符,你需要添加''a'或''A'到它讓他們在字母表中。 –