资源简介
C语言实现的文件存储引擎,用到了很多高级的编程思想
代码片段和文件信息
#include “c.h“
#include “debug.h“
#include “memmgr2.h“
#include “code.h“
void reverse_string(const char *src char *dest)
{
int i;
int len = strlen(src);
for (i = 0; i < len; i++)
dest[i] = src[len - 1- i];
dest[i] = ‘\0‘;
}
void row_code(const char *src int row char *dest)
{
int i j k = 0;
for (i = 0; i < row; i++) {
for (j = i; j < strlen(src); j += row)
dest[k++] = src[j];
}
dest[k] = ‘\0‘;
}
void qwe_code(const char *src char *dest)
{
static char str[] = “qwertyuiopasdfghjklzxcvbnm“;
int i;
for (i = 0; i < strlen(src); i++) {
dest[i] = str[src[i] - ‘a‘];
}
dest[i] = ‘\0‘;
}
/* dest size should be 2 times of src len */
void phone_code(const char *src char *dest int size)
{
static char *phone_key[] = {
“21“ “22“ “23“ /* a b c */
“31“ “32“ “33“ /* d e f */
“41“ “42“ “43“ /* g h i */
“51“ “52“ “53“ /* j k l */
“61“ “62“ “63“ /* m n o */
“71“ “72“ “73“ “74“ /* p q r s */
“81“ “82“ “83“ /* t u v */
“91“ “92“ “93“ “94“ /* w x y z */
};
int len = strlen(src) i;
return_if_fail(size > len * 2
“Size should be larger than %d“ len * 2);
for (i = 0; i < len; i++){
strcat(dest phone_key[src[i] - ‘a‘]);
}
}
void mors_code(const char *src char *dest int size)
{
static char *mors_table[] = {
“-----“ “*----“ “**---“ “***--“
“****-“ “*****“ “-****“ “--***“
“---**“ “----*“
};
int len = strlen(src) i;
return_if_fail(size > len * 5
“Size should be larger than %d“ len * 5);
for (i = 0; i < strlen(src); i++) {
strcat(dest mors_table[src[i] - ‘0‘]);
}
}
#define c_to_lower(c) if(isupper(c)) (c) = tolower(c);
int check_valid_code(char *src)
{
int i;
for (i = 0; i < strlen(src); i++){
if (isalpha(src[i])) {
c_to_lower(src[i]);
}
else return -1;
}
return 0;
}
#define swept(a b type) do { type * _t = a; a = b; b = _t; } while(0)
/*
* 总的加密程序,src和dest分别是缓冲区,size是dest的大小
* 字符串method表示加密方法
*/
int code(char *src char *dest int size char *method)
{
int ret = check_valid_code(src);
return_val_if_fail(
ret == 0
-1
“Invalid Source Code“
);
ret = check_valid_code(method);
return_val_if_fail(
ret == 0
-1
“Invalid Method Code“
);
int method_len = strlen(method);
return_val_if_fail(
method_len >= 2 && method_len <= 8
-1
“Invalid method“
);
return_val_if_fail(
*(method + method_len - 2) == ‘b‘ &&
*(method + method_len - 1) == ‘a‘
-1
“Invalid method“
);
int src_len = strlen(src);
return_val_if_fail(
src_len > 0 && src_len <= MAX_MSG_LEN
-1
“Invalid Src Msg Length“
);
return_val_if_fail(
size > src_len * 10
-1
“Dest Buffer Size Should Larger Than “
“10 Times of Source Buffer Size“
);
int i;
int buffer_size = MAX_MSG_LEN * 2 + 1;
char src_buf[MAX_MSG_LEN * 2 + 1];
char dst_buf[MAX_MSG_LEN * 2 + 1];
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 63106 2011-07-01 08:51 v1\a.out
文件 1220 2011-07-01 09:53 v1\c.h
文件 221369 2011-06-28 21:55 v1\code
文件 4182 2011-07-05 08:33 v1\code.c
文件 615 2011-07-05 08:33 v1\code.h
文件 7644 2011-07-17 18:48 v1\command2.c
文件 288 2011-07-17 17:45 v1\command2.h
文件 12966 2011-07-05 17:07 v1\debug.h
文件 241881 2011-07-01 09:49 v1\engine
文件 3091 2011-07-01 09:53 v1\list.h
文件 1945 2011-07-18 21:46 v1\main.c
文件 23663 2011-07-05 14:29 v1\memmgr2.c
文件 968 2011-07-01 09:53 v1\memmgr2.h
文件 26680 2011-07-05 17:08 v1\store_engine.c
文件 1108 2011-07-04 22:24 v1\store_engine.h
文件 118 2011-07-01 09:53 v1\test.c
文件 578 2011-07-01 09:53 v1\test_code.c
文件 4191 2011-07-07 08:22 v1\user.c
文件 517 2011-07-05 16:21 v1\user.h
目录 0 2012-06-08 21:20 v1
----------- --------- ---------- ----- ----
616130 20
- 上一篇:极其强大的C语言学生成绩管理系统(3000行代码)
- 下一篇:MFC基础控件自绘
相关资源
- 极其强大的C语言学生成绩管理系统(
- BACNet C语言代码,简单实用
- 能够移动的小方块,很多年前用C语言
- C语言编程流程图自动生成
- 二进制乘法多种方式 C语言
- 赫夫曼编码(C语言编写
- 文件系统的用户界面[含答案]
- 用C语言实现ARC圆弧插补计算
- 基于TMS320VC5416的DTMF双音多频发生与检
- 阅览室问题C语言实现
- c++ c 数据结构 课程设计 学生成绩管理
- C语言编写的高精度求积分函数
- ini配置文件读写C/C++版本
- 使用c语言实现图像二值化
- c语言实现的自动贩卖机程序
- 人事管理系统C语言课程设计报告
- C语言 马踏棋盘 完整代码及实验报告
- C语言 图书馆借阅管理系统 完整代码
- UDP协议客户端服务器间视频传输c源码
- 基于51单片机的c语言编写的计算器程
- 简单时间获取,用c语言编写,客户端
- C语言课程设计 - 学生宿舍管理系统
- C语言大作业 西北工业大学
- 基于c++的udp传输,传送超过10M的文件
- 3DES,C语言版,ECB,PKCS7
- 利用LINUX FIFO命名管道技术实现双向聊
- C语言学生宿舍管理程序源代码
- kcf目标跟踪C代码
- 围棋C语言代码要满十字
- 逆波兰表达式 c语言实现
评论
共有 条评论