關於C語言加密的演算法
問:程式設計實現對鍵盤輸入的英文名句子進行加密。用加密方法為:當內容為英文字母時,用26字母中的其後三個字母代替該字母,若為其它字元時不變。比如245a95n加密後是245bcd95opq。
下面我來說下這個問題的解決辦法,和思路,我堅信沒有辦不到的,只有想不到的,有想法就能搞定!使用對應的ascii是比較快的方法。
看下面的程式碼我來分析下,看註釋,,,
#include<stdio.h>
#include<string.h>
int main()
{
charstr[300];
inti,len;
gets(str);//輸入字串
length=strlen(str);
for(i=0;i<length;i++)
{
print(str[i]);//放在迴圈中呼叫這個函式
}
return0;
}
void print(char ch)
{
if(ch<='9'&&ch>='0')
{
putchar(ch);
}
//如果是x之前就輸出該字母的後3位,如果是x,輸出abc,如果是y輸出bcd,如果是z輸出cde
//這裡你可以自己寫,看自己的需求
elseif(ch>='x')
{
putchar(ch-23);//abc
putchar(ch-22);
putchar(ch-21);
}
//如果不是x,y,z 就按要求輸出後三位字母, 是a的話就輸出bcd
else
{
putchar(ch+1);//b
putchar(ch+2);//c
putchar(ch+3);//d
}
}
//供初學者,有不懂的可以給我發郵件[email protected],大家可以交流下!
相關推薦
AES 128-bit ecb cbc 模式 C語言加密演算法
原始碼檢視: aes.h #ifndef _AES_H_ #define _AES_H_ #include <stdint.h> // #define the macros below to 1/0 to enable/disable the mod
關於C語言加密的演算法
問:程式設計實現對鍵盤輸入的英文名句子進行加密。用加密方法為:當內容為英文字母時,用26字母中的其後三個字母代替該字母,若為其它字元時不變。比如245a95n加密後是245bcd95opq。 下面我來說下這個問題的解決辦法,和思路,我堅信沒有辦不到的,只有想不到的,有
C語言加密解密演算法
本文介紹了英文字串的加密、解密過程。是根據網上一篇部落格的題目重寫的程式。 原文地址:http://blog.csdn.net/meditator_hkx/article/details/49445773 #include <stdio.h> #include&
C語言加密練習:第一個字母變成第26個字母,第i個字母變成第(26-i+1)個字母。非字母字符不變。要求編程序將密碼譯回原文,並輸出密碼和原文。
c語言 http () spa mage strlen str png for 1 int Afan(char a); 2 3 int main() 4 5 { 6 7 char arr[40] = {"aABX"}; 8 9 scanf("%s
C語言經典演算法(九)——遞迴實現二分查詢的兩種方法
後繼續整理演算法並寫出自己的理解和備註。 C++實現的:遞迴實現二分查詢演算法 1、 遞迴實現二分查詢 <1> 題目描述:針對資料,進行二分查詢(要求:資料的排列有序) <2> 方法一:概念法 <3> 方法二:遞迴法 原始碼: 一、 遞迴實現
C語言經典演算法(八)——遞迴實現斐波那契數列的兩種方法
後繼續整理演算法並寫出自己的理解和備註。 C++實現的:遞迴實現斐波那契數列 1、 遞迴實現斐波那契數列Fib(n) <1> 題目描述:輸入n值,求解第n項的斐波那契數列值 <2> 方法一:概念法 <3> 方法二:遞迴法 斐波那契數列值是值1
C語言經典演算法(七)——遞迴實現階乘演算法的兩種方法
今後繼續整理演算法並寫出自己的理解和備註。 C++實現的:遞迴實現階乘演算法N! 1、 遞迴實現n! <1> 題目描述:輸入n值,求解n的階乘 <2> 方法一:累乘法 <3> 方法二:遞迴法 原始碼: 一、 遞迴實現n! 1、 累乘法 #
{資料結構}森林轉二叉樹/樹轉二叉樹/c語言程式碼/演算法
具體原理網上書上都有,這裡只貼上程式碼。 該演算法是把樹看作特殊的圖,儲存在鄰接表裡了。 typedef struct Branch { int cIdx;//指向結點的位置 Bra
{GIS演算法}地圖四色著圖/C語言程式碼/演算法
四色原理是什麼?網上原理有很多,不懂可以自己搜。 把需要填圖的區域看作泰森多邊形,每個區域的頂點儲存顏色,點之間關係就是TIN三角形,區域和區域的關係就轉化為點和點之間的關係。 把所有點儲存在鄰接表裡,著色採用回溯法,原理就是圖的遍歷。 不懂可以複製下來自
C語言經典演算法練習一(氣泡排序)
本次練習總結: 1. 函式宣告在初次編碼時忘記,教訓一; 2. 不知道不知長度的陣列空間該如何操作,學會了動態分配,知道了malloc函式在<stdlib.h>標頭檔案中,收穫一; 3. 又忘記double型別在printf()和是scanf()中用%
C語言經典演算法 輸入某年某月某日 判斷這一天是這一年的第幾天
題目:輸入某年某月某日,判斷這一天是這一年的第幾天?1.程式分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊 情況,閏年且輸入月份大於3時需考慮多加一天。2.程式原始碼:main(){int day,month,year,sum,le
C語言經典演算法題目——列印水仙花數
“水仙花”數指的是一個3位數,它的每個位數字的三次冪之和等於它本身 舉一個例子: 153=1x1x1+5x5x5+3x3x3 我們先來看看執行的結果 下面是程式實現的程式碼 #include<stdio.h> int main() {
資料結構--C語言--查詢演算法的實現--順序表的查詢
1.實驗目的 熟練掌握順序表和有序表的查詢方法,掌握其時間複雜度的分析方法 2.實驗內容 (1)驗證並設計順序表的查詢(順序查詢、折半查詢)演算法 (2)驗證二叉排序樹上的查詢(建立、查詢、插入)演算法 (3)驗證Hash表查詢(Hash函式定義、建立,查詢,插
C語言——Prim演算法實現最小生成樹
詳細C++版本的Prim實現, 可以參考:https://www.61mon.com/index.php/archives/199/comment-page-2#comments 也可參考:http://blog.csdn.net/yeruby/article/detail
C語言筆試演算法題
整數分解 題目描述: 一個正整數有可能可以被表示為n(n>;=2)個連續正整數之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8 請編寫程式,根據輸入的任何一個正整數,找出符合這種要求的所有連續正整數序列。 輸入資料:一個正整數,以命令列引數的形式提
常見演算法:c語言矩陣演算法問題
矩陣:數學上,一個m×n矩陣乃一m行n列的矩形陣列。矩陣由陣列成,或更一般的,由某環中元素組成。 0.矩陣N*N相乘 #include<stdio.h> int main(void) { int i,j,k; double a[3
C語言靈魂——演算法!
程式的靈魂—演算法 一個程式應包括: 對資料的描述。在程式中要指定資料的型別和資料的組織形式,即資料結構(data structure)。 對操作的描述。即操作步驟,也就是演算法(algorithm)。 Nikiklaus Wirth提出的公式: 資料結構+演算法=程式
C語言經典演算法:求1-100之間素數
#include<stdio.h> #include<stdlib.h> #include<assert.h> #include<math.h> in
汪雨田的專欄----c語言,演算法設計,php,linux,mysql
最近遇到一個在C語言當中處理中文的問題,因為漢字和ascii不同,漢字是多位元組編碼方式,ascii只用一個位元組表示,所以在用c語言提供的strlen函式得到的長度是位元組長度; 以下都是utf-8編碼方式,為了得到一個字元(漢字和ascii)有幾種處理
C語言經典演算法:輸入某年某月某日,判斷這一天是這一年的第幾天?
題目:輸入某年某月某日,判斷這一天是這一年的第幾天?1.程式分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊 情況,閏年且輸入月份大於3時需考慮多加一天。2.程式原始碼:main(){int day,month,year,sum,l