数据结构 - 串的基本运算实现

原创 2016年06月01日 18:04:16

实验题目:

一个文本串可用事先给定的字母映射表进行加密。例如,设字母映射表为:
abcdefghijklmnopqrstuvwxyz
ngzqtcobmuhelkpdawxfyivrsj
则字符串“abc”被加密为“ngz”。设计一个程序exp4-4.cpp将输入的文本串进行加密后输出,然后进行解密并输出。

源码:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#define MaxSize 200
using namespace std;

struct SqString
{
    char data[MaxSize];
    int length;
};
void StrAssign(SqString &s,char cstr[])
{
    int i;
    for (i=0;cstr[i]!='\0';i++)
        s.data[i]=cstr[i];
    s.length=i;
}
void DispStr(SqString s)
{
    int i;
    if (s.length>0)
    {
        for (i=0;i<s.length;i++)
            cout<<s.data[i];
        cout<<endl;
    }
}
char x_0[]="abcdefghijklmnopqrstuvwxyz";
char y_0[]="ngzqtcobmuhelkpdawxfyivrsj";
void en_string(SqString,int);
void dec_string(SqString,int);
SqString str,x,y;
int main()
{
    char input[MaxSize];
    cout<<"原文串:";
    gets(input);
    StrAssign(str,input);
    StrAssign(x,x_0);
    StrAssign(y,y_0);
    en_string(str,str.length);
    return 0;
}
void en_string(SqString a,int len)
{
    int i,j;
    SqString encrypt;
    encrypt.length=len;
    for(i=0; i<len; i++)
        for (j=0; j<26; j++)
            if (a.data[i]==x.data[j])
            {
                encrypt.data[i]=y.data[j];
                break;
            }
    cout<<"加密串:";
    DispStr(encrypt);
    dec_string(encrypt,len);
}
void dec_string(SqString a,int len)
{
    int i,j;
    SqString decipher;
    decipher.length=len;
    for(i=0; i<len; i++)
        for (j=0; j<26; j++)
            if (a.data[i]==y.data[j])
            {
                decipher.data[i]=x.data[j];
                break;
            }
    cout<<"解密串:";
    DispStr(decipher);
}

运行结果:

运行结果

版权声明:本文为博主原创文章,未经博主允许不得转载,复制。

数据结构:字符串 C++

题目来自于 https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/01.00.md 非常感...

数据结构---字符串

1. 翻转句子中单词的顺序,但单词内字符的顺序不变思路:先逆转整个句子,然后从首字符开始扫描,每扫描到一个单词(遇到空白或结束字符),对这个单词进行逆转。1. void Reverse(char *...

数据结构c语言实现之字符串

// bo4-1.cpp 串采用定长顺序存储结构(由c4-1.h定义)的基本操作(13个),包括算法4.2,4.3,4.5 #include #include #include // SStr...
  • earbao
  • earbao
  • 2013年12月08日 14:36
  • 4187

数据结构实践——字符串加密

本文针对数据结构基础系列网络课程(4):串实践项目。【项目-字符串加密】 一个文本串可用事先编制好的字符映射表进行加密。例如,设字符映射表为: abcdefghijklmnopqrstuvwxyz...

数据结构上机:字符串的加密解密

一、实验题目 一个文本串可用事先给定的字母映射表进行加密。例如,设字母映射表为: abcdefghijklmnopqrstuvwxyz ngzqtcobmuhelkpdawxfyivrsj 则...

串的实验---字符串加密

实验要求:     一个文本串可用事先给定的字母映射表进行加密。例如,设字母映射表为: abcdefghijklmnopqrstuvwxyz ngzqtcobmuhelkpdawxfyivr...

数据结构(7)——串的堆分配的基本操作

void InitString(HString &T); // 初始化(产生空串)字符串T void StrInit(HString &S); //初始化 开辟空间 Status StrAssign...

数组和广义表的基本运算实现

一、实验题目 假设nn的稀疏矩阵A采用三元组表示,设计一个程序exp6-4.cpp实现如下功能: (1)生成如下两个稀疏矩阵的三元组a和b;         (2)输出a转置矩阵的三元组; ...

第6次数据结构上机(数组和广义表的基本运算实现)

实验名称:数组和广义表的基本运算实现 指导教师:           王莹洁               专业班级:       计163-1         姓   名:      曹欣...

数据结构 - 数组和广义表的基本运算实现

实验题目:假设n n的稀疏矩阵A采用三元组表示,设计一个程序exp6-4.cpp实现如下功能: (1)生成如下两个稀疏矩阵的三元组a和b; (2)输出a转置矩阵的三元组; ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构 - 串的基本运算实现
举报原因:
原因补充:

(最多只允许输入30个字)