📄 englishcode.cpp
字号:
// EnglishCode.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <memory.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
//char * EncodeEnglish(char * InputStr);
int CodeEnglish(void * InStr,char * OutStr,int OutBuffLen)
{
int n,len,Count;
unsigned char strTemp1[2],strTemp2[2];
char * strRecv = (char *)InStr;
len=strlen(strRecv);
if(len >= OutBuffLen)
{
printf("OutBuffLen is too little");
return -1;
}
n=0;
Count = 0;
OutStr[0] = '\0';
for(int i = 0;i <= len - 1;i++)
{
if (i < len - 1)
{
strncpy((char *)strTemp1,(char * )(strRecv + i),1);
strncpy((char *)strTemp2,(char * )(strRecv + i) + 1,1);
//忽略每个字符的最高位(第8位),
//依次将下一7位编码的后几位逐次前移。
OutStr[Count] = ((strTemp1[0]>>n)|(strTemp2[0]<<(7-n)))& 0xff;
}
else
{
strncpy((char *)strTemp1,(char * )(strRecv + i),1);
OutStr[Count]=(strTemp1[0]>>n)& 0x7f;
}
n=(n+1)%7;
//移位计数已达7位时,就把移位计置0
if (n==0)
i++;
//保证转换后的编码间是紧凑的。
Count++;
}
OutStr[Count] = '\0';
return 0;
}
int main(int argc, char* argv[])
{
// char str[20];
// str = EncodeEnglish("asdg");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -