?? 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 + -