作为一个单身程序员
没事的时候给自己找点事做,要不然太无聊了
自己草率地写了一个加密通话的C程序
一看代码就知道怎么回事,先实现了这个功能,完善的事还要看后续
(不知道为什么电脑上的codeblocks只可以加密英文,手机上的编译器可以中英文)
(有需要手机C语言编译器的同学私信我哦)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
Author:ZhenYangDu
Date£:2021.4.20
Edition:1
from NEU software college
*/
int returnNum(int len,int a,int b,int c)
{
if(len==1)
{
return a;
}
if(len==2)
{
return a*10+b;
}
if(len==3)
{
return a*100+b*10+c;
}
return 0;
}
char *decode(char input[])
{
char *result;
result=(char*)malloc(sizeof(char)*999);
memset(result,'\0',999);
int i=0;
int a=-1,b=-1,c=-1;
int len=0;
int num=0;
while(input[i]!='\0')
{
if(input[i]==32)
{
result[num]=returnNum(len,a,b,c);
a=-1;
b=-1;
c=-1;
len=0;
i++;
num++;
continue;
}
if(a==-1)
{
a=input[i]-'0';
}
else if(b==-1)
{
b=input[i]-'0';
}
else
{
c=input[i]-'0';
}
len++;
i++;
}
result[num]=returnNum(len,a,b,c);
return result;
}
char *encode(char input[])
{
char *result1;
result1=(char*)malloc(sizeof(char)*999);
memset(result1,'\0',999);
int i=0;
int num=0;
while(input[i]!='\0')
{
int ch=input[i];
int CH[3]={-1,-1,-1};
int m=2;
while((ch/10)!=0)
{
CH[m]=ch%10;
ch=ch/10;
m--;
}
CH[m]=ch;
for(;m<=2;m++)
{
int middle=-1;
middle='0'+CH[m];
result1[num]=middle;
num++;
}
result1[num]=32;
num++;
i++;
}
return result1;
}
int main()
{
printf("Encode or Decode\n");
char * input1=(char *)malloc((sizeof(char)*999));
memset(input1,'\0',999);
gets(input1);
printf("please input\n");
if(strcmp(input1,"encode")==0)
{
char * input2=(char *)malloc((sizeof(char)*999));
memset(input2,'\0',999);
gets(input2);
input2=encode(input2);
printf("%s\n",input2);
}
if(strcmp(input1,"decode")==0)
{
char * input3=(char *)malloc((sizeof(char)*999));
memset(input3,'\0',999);
gets(input3);
input3=decode(input3);
printf("%s\n",input3);
}
return 0;
}