【发布时间】:2013-01-28 22:29:21
【问题描述】:
#include <stdio.h>
int main()
#include <stdio.h>
int main()
{
char msg[31] = {'\0'};
char encrypted[31] = {'\0'};
int key;
printf("Please enter a message under 30 characters: ");
fgets(msg, 31, stdin);
printf("Please enter an encryption key: ");
scanf("%d", &key);
int i = 0;
while (msg[i] && ('a' <= msg[i] <= 'z' || 'A' < msg[i] < 'Z'))
{
encrypted[i] = (msg[i] + key);
i++;
}
printf("%s\n", msg);
printf("%d\n", key);
printf("%s\n", encrypted);
}
好的,我有我的代码来增加字符,但我不知道如何让它忽略特殊字符和空格。另外我如何使用% 循环回'a' 和'A'?
谢谢。
【问题讨论】:
-
如果您的键是
int,如果您将字符的值增加到超出char类型的限制会怎样? -
如果一个人输入一个类似 28 的整数,而不是经过 'z',它会循环回到 'a' 并再加 2 到 'c'。
-
ASCII 不仅仅代表字母 - 注意!
-
你在做 rot13 类型的密码?
-
是的,它是一个 rot13 类型的密码