Thuật toán mã hóa Caesar là gì? Mọi người có thể tham khảo tại đây.
Mã hóa Caesar với bước nhảy bằng 3, được biểu diễn:
Bây giờ tôi xin vào thẳng code luôn cho không mất thời gian, học bằng code là cách học tốt nhất!!!
Còn về ý tưởng của bài giải thì mọi người có thể tự tìm hiểu tại đây
#include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #define SIZE 100 int Mahoa_Ceaser(char *Str_Nguon,char *Str_Mahoa,int len,int key); int Giaima_Ceaser(char Str_Nguon[],char Str_Giaima[],int len,int key); int khoitao(char Str[]); void main() { char Str[SIZE],Str_Mahoa[SIZE],Str_Giaima[SIZE]; int len,key; printf("Nhap chuoi: "); flushall(); gets(Str); printf("Nhap so buoc nhay: "); scanf("%d",&key); len=strlen(Str); khoitao(Str_Mahoa); khoitao(Str_Giaima); Mahoa_Ceaser(Str,Str_Mahoa,len,key); Giaima_Ceaser(Str,Str_Giaima,len,key); printf("Chuoi %s duoc ma hoa thanh: %s\n",Str,Str_Mahoa); printf("Chuoi %s duoc giai ma thanh: %s\n",Str,Str_Giaima); getch(); } int Mahoa_Ceaser(char Str_Nguon[],char Str_Mahoa[],int len,int key) { for (int i=0;i<len;i++) { char c=Str_Nguon[i]; if(c>='A' && c<='Z') Str_Mahoa[i]=(Str_Nguon[i]-'A'+key)%26 +'A'; else if(c>='a' && c<='z') Str_Mahoa[i]=(Str_Nguon[i]-'a'+key)%26+'a'; else Str_Mahoa[i]=Str_Nguon[i]; } return 0; } int khoitao(char Str[]) { for(int i=0;i<SIZE;i++) Str[i]=0; return 0; } int Giaima_Ceaser(char Str_Nguon[],char Str_Giaima[],int len,int key) { for (int i=0;i<len;i++) { char c=Str_Nguon[i]; if(c>='A' && c<='Z') Str_Giaima[i]=(abs(Str_Nguon[i]-'A'-key))%26 +'A'; else if(c>='a' && c<='z') Str_Giaima[i]=(abs(Str_Nguon[i]-'a'-key))%26+'a'; else Str_Giaima[i]=Str_Nguon[i]; } return 0; } |
viết bởi nmT
Sign up here with your email
6 nhận xét
Write nhận xétThank you for mentioning my article
Replycảm ơn bạn nhiều nha, mới học Thuật toán này nên chưa biết viết sao nữa
)
Replythánh code
Replycode này vẫn chạy sai bạn yêu ơi!
ReplyXin giúp em mã hóa số này với, e ko hiểu: 20-8-9-16-5-22-3-2-11-22-3-14-8-9
ReplyMã được mã hóa 3 lần và bước dịch chuyển là 4.
No more live link in this comments field
ReplyConversionConversion EmoticonEmoticon