Chinaunix首页 | 论坛 | 博客
  • 博客访问: 758816
  • 博文数量: 111
  • 博客积分: 3895
  • 博客等级: 中校
  • 技术积分: 1300
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-29 21:26
文章分类

全部博文(111)

文章存档

2014年(22)

2013年(8)

2010年(14)

2009年(21)

2008年(46)

我的朋友

分类: C/C++

2013-09-17 17:21:07

大学没好好学过数据结构,过了这么多年想再拾回来。前几天看“串”,其中一个简单的应用是文本串加密和解密。书上的两个小错误让我弄了好久……思维迟缓了啊……
源程序如下:
1.c
//Massachusetts 2013-09-17 17:07
#include
#define MaxSize 100
typedef struct
{
    char data[MaxSize];
    int length;
}SqString;

void StrAssign(SqString &str,char cstr[])
{
    int i;
    for(i=0;cstr[i]!='\0';i++)
        str.data[i]=cstr[i];
    str.length=i;
}

void DispStr(SqString s)
{
    int i;
    if(s.length>0)
    {
        for(i=0;i             printf("%c",s.data[i]);
        printf("\n");
    }
}


2.c
//Massachusetts 2013-09-17 17:07
#include
#include
#define MaxSize 100
typedef struct
{
    char data[MaxSize];
    int length;
}SqString;

extern void StrAssign(SqString &,char[]);
extern void DispStr(SqString);
SqString A,B;
SqString EnCrypt(SqString p)
{
    int i=0,j;
    SqString q;
    while(i     {
        for(j=0;p.data[i]!=A.data[j];j++);
        if(j>=26)
            q.data[i]=p.data[i];
        else
            q.data[i]=B.data[j];
        i++;
    }
    DispStr(q);
    q.length=p.length;
    return q;
}

SqString UnEncrypt(SqString q)
{
    int i=0,j;
    SqString p;
    while(i     {
        for(j=0;q.data[i]!=B.data[j];j++);
        if(j>=26)
            p.data[i]=q.data[i];
        else
            p.data[i]=A.data[j];
        i++;
    }
    p.length=q.length;
    return p;
}

void main()
{
    SqString p,q;
    int ok = 1;
    StrAssign(A,"abcdefghijklmnopqrstuvwxyz");
    StrAssign(B,"ngzqtcobmuhelkpdawxfyivrsj");
    char str[MaxSize];
    printf("\n");
    printf("输入原文串:");
    gets(str);
    StrAssign(p,str);
    printf("加密解密如下:\n");
    printf("原文串:");DispStr(p);
    q=EnCrypt(p);
    printf("加密串:");DispStr(q);
    p=UnEncrypt(q);
    printf("解密串:");DispStr(p);
    printf("\n");
}

编译环境:Visual C++ 6.0 绿色简体中文版
关于传参的问题:void StrAssign(SqString &,char[])。这种形式里的前一个参数有的人说是C++里的,又有人说C里面有这种,有待进一步验证。
阅读(584) | 评论(0) | 转发(0) |
0

上一篇:yum原理

下一篇:gnome 3 初见

给主人留下些什么吧!~~