ceilica 发表于 2006-4-25 21:56

关于c的问题

那位大侠看一下,题目是要干什么的.问题应该用那些函数?谢谢

Es soll ein einfaches Verschluesselungsprogramm implementiert werden,das auf der Caesar-Chiffre basiert. Bei dieser Verschluesselungstechnik wird jeder Buchstabe des Textesim Alphabet um eine feste Anzahl von Stellen verschoben; diese positive Zahl ist ”der Schluessel“. Unter http://de.wikipedia.org/wiki/Caesar-Chiffre finden Sie eine Beschreibung der Caesar-Chiffre.


a) Der Benutzer soll den Namen einer Textdatei angeben; diese Datei wird dann zeilenweise eingelesen.
Zur Vereinfachung duerfen Sie annehmen, daß der Text nicht mehr als 200 Zeichen pro Zeile enthaelt.

b) Der Benutzer kann zwischen drei Verschluesselungsarten waehlen:
• Spiegeln der einzelnen Zeilen (also Umkehrung der Reihenfolge der Zeichen einer Zeile)
• Anwenden der Caesar-Chiffre
• Anwenden der Caesar-Chiffre und anschließendes Spiegeln der Zeile.
Stellen Sie sicher, daß nur natuerliche Zahlen als Schluesseleingabe des Benutzers akzeptiert werden !

c) Probieren Sie bei der Caesar-Chiffre fuer einen kurzen Testtext verschiedene Moeglichkeiten aus, um
sicherzustellen, daß Ihr Programm richtig funktioniert !

d) Was passiert, wenn man die Verschluesselung doppelt anwendet ?

e) Wo wird die Caesar-Chiffre heute noch benutzt ?

f) Entschluesseln Sie den Geheimtext auf der Vorlesungs-Webseite !

熊猫羊 发表于 2006-4-26 01:08

编一个Caesar-Chiffre 程序加密文字,(Caesar-Chiffre 自己看吧),每个单词的每个字母将被后移n,n就是密钥,比如,密钥=3,则单词werden被加密后变成,zhughq.
每个字母都有其对应的ascii码,读取文本行后,赋值给一个字符数组,数组的每个元素以ascii码形式存在,A好像是60几,具体数忘了,将每一数组元素加上密钥,再以字符形式显式就完成加密.
注意,x应当为加密为a,y->b,z->c,也就是不能逸出,即进制为26.
置于Spieglung,原理类似.
c好像没有类似matlab语言之类的str2num和num2str函数,(好久没用c了,忘了,呵呵)

偶认为,此练习让人学习ascii码,字符串,字符数组,字符数组元素,以及,字符和ascii码间转换的.

e的答案偶不知.
页: [1]
查看完整版本: 关于c的问题