【发布时间】:2020-08-25 16:01:39
【问题描述】:
我想问的是,当您编写密码并要求用户输入时。您将如何将字符串中的字符更改为数字,以便您可以将它们插入公式,然后再输出另一个字母。
string s = get_string("Plain Text:");
while (s[a] != '\0')
{
if (isalpha(s[a]))
{
for (c = 0, e = strlen(s); c < e; c++)
{
if (isupper(s[a]))
{
printf("C\n");
a++;
}
if (islower(s[a])) // (x=(?+(argv[1][i]))%26) This is the formula, the ? is where im trying to figure out how to change characters into numbers and then back in characters
{
printf("c\n");
a++;
}
}
}
}
'printf' 是为了确保代码正确地检查小写或大写。如果我没记错的话,我需要 2 个具有不同范围的公式,以便一个更高,另一个更低,这样我就可以将它们都插入一个密码公式中。我很确定你也可以不检查它的上限或下限,但我真的不明白你将如何创建范围或循环,以便它始终保持在字母字符中,无论它是大写还是小写。
【问题讨论】:
-
C中字符串中的字符是整数(它们的确切类型是
char,它是一个整数)。 -
关于CS50 Caesar Cipher的问题有数百个,你可以在那里看到公式。示例:stackoverflow.com/questions/63568354/…
-
第1步:
(s[a] - 'A')是'A'的偏移量。