A chiffer är en enkel typ av kod som ersätter varje bokstav i hemligt meddelande med en särskild symbol eller tecken . En av de mest välkända är Caesar chiffer , som helt enkelt flyttar fram alfabetet ett visst antal bokstäver , så att A är B och B är C , eller A är M och B är N , beroende på hur långt du flytta den . Genom att manipulera ASCII-värden , kan du skriva enkelt ett program i C som kan utföra operationer som detta för dig i farten , omedelbart kryptera alla meddelanden du skriver . Instruktioner
1
Inkludera standard input /output header -fil och förklara en kryptering funktion som tar ett heltal . Detta heltal kommer att representera antalet bokstäver att flytta chiffer . I ett chiffer med en förskjutning av ett , skulle A vara B, med en förskjutning av 2 , skulle A vara C och så vidare. Denna preliminära koden ska se ut så här :
# include
kryptera void ( int letter_shift ) ,
2
Skapa kryptera ( ) funktion. Detta bör börja med att förklara en char variabel , som kommer att stå för brevet som för närvarande kodas eller avkodas . Skriv ett meddelande på skärmen ber om ingång , och sedan lagra den ingången i char variabel . Det bör se ut ungefär så här :
void kryptera ( int letter_shift ) katalog
{
röding CH;
printf ( " Skriv in din text för att kryptera : " ) ;
CH = getchar ( ) ;
3
Skriv en while-slinga som undersöker det aktuella tecknet och utföra krypteringen . Slingan bör kontrollera om tecknet faller inom ASCII alfabetet området , bara kryptera det om det gör det , och flytta bokstäverna i slutet av alfabetet tillbaka till början . Detta sätt ett chiffer med en förskjutning av 1 kommer att göra Z som A , inte så [ . Slingan kommer att skriva varje bokstav på skärmen eftersom det krypterar den , bara stoppa när den stöter radmatningstecknet . Denna andra hälften av encrypt ( ) -funktionen ska se ut så här :
samtidigt ( ch = ' \\ n ' ! ) Katalog
{
om ( isalpha ( CH ) ) katalog
{
om ( isupper ( CH ) && isupper ( CH + letter_shift )