Δημοσιεύτηκε: 27 Αύγ 2011, 15:05
Χεχε, thanks ρε συ, αλλά είναι πολύ απλό για να αξίζει... υποκλίσεις 
Ορίστε και μια πολύ πρόχειρη υλοποίηση του ROT13 ciphering (δουλεύει μονάχα για λατινικά γράμματα):
Ορίστε και μια πολύ πρόχειρη υλοποίηση του ROT13 ciphering (δουλεύει μονάχα για λατινικά γράμματα):
- Κώδικας: Επιλογή όλων
#include <stdio.h>
#define ALPHA "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
#define ALPHA13 "NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm"
// ----------------------------------------------------------------------------------------
char c_rot13( const char c, const char *alpha, const char *alpha13 )
{
register int i;
for ( i=0; alpha[i]; i++ )
if ( c == alpha[i] )
return alpha13[i];
return '\0';
}
// ----------------------------------------------------------------------------------------
char *s_rot13( char *s )
{
if ( !s )
return NULL;
char c, *cp = s;
for(; *s; s++ )
*s = (c=c_rot13(*s, ALPHA, ALPHA13)) != '\0' ? c : *s;
return cp;
}
// ----------------------------------------------------------------------------------------
int main( void )
{
char s[] = "This is a test for (dummy) ROT13 ciphering.";
printf("Original:\n%s\n\n", s);
printf("Ciphered:\n%s\n\n", s_rot13( s ) );
printf("DeCiphered:\n%s\n\n", s_rot13( s ) );
return 0;
}