1. 程式人生 > >關於C語言加密的演算法

關於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語言經典演算法(九)——遞迴實現二分查詢的兩種方法

後繼續整理演算法並寫出自己的理解和備註。 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