【发布时间】:2013-11-19 06:47:35
【问题描述】:
问题如下:
使用指针算法求解以下密码。给定的字符串是 GKQTEHIN。定义一个指针并将其设置为该字符串中的字母“T”。前后遍历字符串。为每个字母添加/减去 1 到 5 之间的单个值(键)以解决此密码并形成一个有意义的单词。提示:你将在解决它时使用它。
希望这已正确完成...
char given[]="GKQTEHIN";
char *pointer;
pointer=&given[3];
pointer-=3;
printf("%c", *pointer-4);
pointer+=1;
printf("%c", *pointer+4);
pointer+=1;
printf("%c", *pointer-4);
pointer+=1;
printf("%c", *pointer-4);
pointer+=1;
printf("%c", *pointer+4);
pointer+=1;
printf("%c", *pointer+4);
pointer+=1;
printf("%c", *pointer-4);
pointer+=1;
printf("%c\n\n", *pointer+4);
“编译器”这个词被打印出来了。
【问题讨论】:
-
我如何“在每个字母表中添加/减去单个值...”? -- 你不认为你会得到这个问题的更好答案吗?来自你的教授或助教?
-
请您的老师仔细检查字符串“GKQTEHIN”——我认为应该是“GSQTYXIV”
-
这个问题是废话,你已经完成了所有明确的部分,并且给定的字符串产生零个“有意义”的单词,无论如何解释模糊的部分。我和亚当一样,给定的字符串不是以这种方式编码的,或者只是完全错误的。
-
感谢大家的意见,并将继续努力。我昨晚给他发了电子邮件,没有收到个人回复,但他向我们全班同学发了一条消息,说“字母 I 和 E 将在最后一个解密的单词中互换位置。”
-
哦,所以我只是用笔和纸弄乱了字母表,答案是“编译器”。对于字符串中的每个元素(从左到右),减去 4、加 4、减 4、减 4、加 4、加 4、减 4 和加 4。哇。乐趣。不过,我不确定如何使用循环来减少乏味。再说一次,说明并没有要求这样做……至少我有一些东西要上交,我想。谢谢你的所有话,伙计们。
标签: c pointers encryption pointer-arithmetic