⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 englishcode.cpp

📁 brew平台上对于英文编码的源码
💻 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 + -