📄 type.cpp
字号:
#include <windows.h>
#include <string.h>
#include <stdio.h>
/*flag 0:正序,1:倒序*/
int WINAPI longtochar(long l, char *a, int flag)
{
char tmp[4];
char temp[4];
memcpy(a, &l, 4);
if (flag)
{
memcpy(tmp, &l, 4);
temp[0] = tmp[3];
temp[1] = tmp[2];
temp[2] = tmp[1];
temp[3] = tmp[0];
memcpy(a, temp, 4);
}
return 0;
}
long WINAPI chartolong(char *a, int flag)
{
char tmp[4];
char temp[4];
long l;
memcpy(&l, a, 4);
if (flag)
{
memcpy(tmp, a, 4);
temp[0] = tmp[3];
temp[1] = tmp[2];
temp[2] = tmp[1];
temp[3] = tmp[0];
memcpy(&l, temp, 4);
}
return l;
}
int WINAPI inttochar(short int i, char *a, int flag)
{
char tmp[2];
char temp[2];
memcpy(a, &i, 2);
if (flag)
{
memcpy(tmp, &i, 2);
temp[0] = tmp[1];
temp[1] = tmp[0];
memcpy(a, temp, 2);
}
return 0;
}
short int WINAPI chartoint(char *a, int flag)
{
char tmp[2];
char temp[2];
short int i;
memcpy(&i, a, 2);
if (flag)
{
memcpy(tmp, a, 2);
temp[0] = tmp[1];
temp[1] = tmp[0];
memcpy(&i, temp, 2);
}
return i;
}
int WINAPI compress(char* a, char *b, int len)//len个字节的a压缩成len/2个字节的b
{
char i;
for(i = 0; i < len; i++)
{
b[i / 2] = (a[i] & 0x0f) << 4;
i ++;
b[i / 2] += a[i] & 0x0f;
}
return 0;
}
int WINAPI decompress(char* a, char *b, int len)//len个字节的a解压缩成len*2个字节的b
{
char i;
for(i = 0; i < len * 2; i++)
{
b[i] = ((a[i / 2] & 0xf0) >> 4) + '0';
i++;
b[i] = (a[i / 2] & 0x0f) + '0';
}
return 0;
}
//a保留alen个字节;从b开始接blen个字节。例如:a ="12345678";b = "abcdefgh" alen = 3; blen = 5;结果最后a = "123abcde"
int WINAPI stringcat(char* a, char *b, int alen, int blen)
{
char tmp[100];
/*从a中取alen个字节*/
strncpy(tmp, a, alen);
/*从b中取blen个字节放入a中*/
strncpy(tmp+alen, b, blen);
/*全部附值给a*/
memcpy(a, tmp, alen+blen);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -