`
ktc7000
  • 浏览: 33478 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

C语言函数:找到字符串中指定字符串并替换,输出为DLL

    博客分类:
  • dll
  • c
阅读更多
// convert9.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "convert9.h"
#include "windows.h"
#include "stdio.h"
#include "string.h"

BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
)
{
    switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
    }
    return TRUE;
}
extern "C" _declspec(dllexport) int convert(char *convert, char *cont)
{
char StartFlag[5]="<";//左尖括号
    char EndFlag[5]=">";//右尖括号
    char flag_st[1000]="";//搜索存放左尖括号位置
    char flag_ed[1000]="";//搜索存放右尖括号位置
    char sharp_left[2]="<";
char sharp_right[2]=">";
char tmp[1000];//备份
char tmp1[1000];
char tmp2[1000];
    long unsigned num_pos=0;

//备份cont
strcpy(tmp, cont);
//左尖括号替换
    for (num_pos=0;num_pos < strlen(cont);)
    {
strcpy(flag_st,"");
strncat(flag_st, cont+num_pos, 4);
if (strcmp(flag_st, StartFlag) != 0)
{
num_pos++;
if (num_pos > strlen(cont))
{
printf("------------------------");
printf("Start flag not found !");
                 printf("------------------------");
break;
}
}
else
{
strcpy(tmp1, "");//tmp1变量初始化
             strncat(tmp1, cont, num_pos);//截止到"&lt;"前的内容存入变量tmp1
strcat(tmp1, sharp_left);//tmp1连接左尖括号存入tmp1
strcpy(tmp2, cont+num_pos+4);//将"&lt;"后的内容存入变量tmp2
strcpy(cont, tmp1);
strcat(cont, tmp2);//组合变量tmp1和tmp2内容,存入变量cont
}
}

//右边尖括号替换
for (num_pos=0; num_pos < strlen(cont);)
    {
strcpy(flag_ed, "");
strncat(flag_ed, cont+num_pos, 4);
if (strcmp(flag_ed, EndFlag) != 0)
{
num_pos++;
if (num_pos > strlen(cont))
{
printf("------------------------");
printf("End flag not found !");
                 printf("------------------------");
break;
}
}
else
{
strcpy(tmp1, "");//tmp1变量初始化
strncat(tmp1, cont, num_pos);//截止到"&lt;"前的内容存入变量tmp1
strcat(tmp1, sharp_right);//tmp1连接右尖括号存入tmp1
strcpy(tmp2, cont+num_pos+4);//将"&lt;"后的内容存入变量tmp2
strcpy(cont, tmp1);
strcat(cont, tmp2);//组合变量tmp1和tmp2内容,存入变量cont
}
    }
//结果存入conv
strcpy(convert, cont);
strcpy(cont, tmp);
return 0;
}

// This is an example of an exported variable
CONVERT9_API int nConvert9=0;

// This is an example of an exported function.
CONVERT9_API int fnConvert9(void)
{
return 42;
}

// This is the constructor of a class that has been exported.
// see convert9.h for the class definition
CConvert9::CConvert9()
{
return;
}
分享到:
评论

相关推荐

    C语言字符串处理函数

    几个字符串处理函数增强版 常用需求基本都能完成 已经编译成DLL 函数列表 兼容字符和串 void revstr char str 字符串反转 int substring char res int pos int len char substr 从pos开始取len个字符到substr中 ...

    c语言字符串分割,截取,子串查找,插入,删除

    int strreplace(char *res,char *substr,char *desstr)//替换res中的substr为desstr,1成功,0失败 int str_count(char *res,char *substr)//统计res中的substr出现的次数 int cut_str(char *res,char *mark,int pos,...

    MyFll Microsoft Visual FoxPro设计的扩展库

    Format 格式化输出字符串(类C语言) CreateLink 创建文件关联 DesktopHide 隐藏桌面 SystemKeySet 禁用系统键 RegisterFile 注册文件名解除文件注册 封装过的Win32 API函数: FindWindow 查找指定窗口...

    华为安全C库函数代码 securec.zip

    循C11 Annex K (Bounds-checking interfaces)的标准,选取并实现了常见的内存/字符串操作类的函数,如memcpy_s、strcpy_s等函数。 未来将分析C11 Annex K中的其他标准函数,如果有必要,将在该组织中实现。 处理边界...

    标准MFC WinSock ActiveX控件开发实例

    case VT_BSTR://字符串型 IPAddress = CString(RemoteHost.bstrVal); break; case VT_BYREF|VT_I1://CHAR * IPAddress.Format("%s",RemoteHost.pcVal);//RemoteHost.pbstrVal); break; default: ...

    小巧玲珑的des加密解密算法 C语言 (dll形式)附送原代码

    要加密的字符串(以八个字节为单位),第三个参数选择工作方式 加密/解密 made by yezigu921 ********************************************************************************/

    VS2010中使用C++创建和使用DL.docx

    2.字符集的问题(是Unicode字符集还是多字节集),两种方案,一种修改字符集为多字节集,二是将字符串前面加 _T(""),文中问题2 3.不知道怎么通过模块定义文件方式生成DLL,通过看参考博客的代码找到了答案,主要修改...

    TCtrl.dll v1.05

    类似通用对话框“Get open file name”,用以获得所选择目录的完整路径字符串。 ...... ===== readme.txt节录 ================================ 另附4个控件演示程序及其C语言源代码,其中包括丰富的应用...

    VB编程常用的模块及CTL控件集打包.rar

    VM_READ, False, ProcessInfo.th32ProcessID) ‘打开进程获得notepad的句柄供后面的操作使用 DllFileName = "C:Vblegend.dll" MyDllFileLength = Len(DllFileName) 1 ‘学过C语言的朋友应该知道字符串最后要一个...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

    6.8.2 从字符串中删除空格 268 6.8.3 计算表达式的值 268 6.8.4 获得项值 270 6.8.5 分析数 271 6.8.6 整合程序 274 6.8.7 扩展程序 275 6.8.8 提取子字符串 277 6.8.9 运行修改过的程序 279 6.9 C++/CLI...

    C语言制作的讯飞语音合成、实时语音识别、短语音文件识别、语音唤醒标准调用接口DLL,源代码

    mystrcat @2 //测试用的两字符串连接函数 tts @3 //讯飞文本合成语音函数,祥见原型说明 autotxt @4 //讯飞实时语音识别函数,祥见原型说明 wavtotxt @5 //讯飞语音文件识别成文本函数,祥见原型说明 micWAKEUP...

    C/C++ LOG记录模块

    将格式化字符串输出到log文件中,代码会在执行文件的目录,自动创建子目录 log\ 并在其中创建跟执行文件同名的log文件 当记录的log文件超过5M时,会将log压缩重命名,并创建新的log文件 用户使用时,只可调用以 ...

    C/C++笔试题(附答案,华为面试题系列)

    7.C++中为什么用模板类。 答:(1)可用来创建动态增长和减小的数据结构 (2)它是类型无关的,因此具有很高的可复用性。 (3)它在编译时而不是运行时检查数据类型,保证了类型安全 (4)它是平台无关的,可移植性 ...

    vc源代码合集0951.rar

    2012-06-12 12:22 10,537 C和C++字符串处理函数.txt 2012-06-12 12:21 8,825 c扫描器源码.txt 2012-06-12 12:39 505,110 c语言也能干大事全部板书(带书签)-感谢rupeng.com鹏友的整理.rar 2012-06-12 12:10 183,001 ...

    Windows内核安全与驱动开发光盘源码

    2.2.3 字符串 20 2.3 重要的数据结构 21 2.3.1 驱动对象 21 2.3.2 设备对象 22 2.3.3 请求 24 2.4 函数调用 25 2.4.1 查阅帮助 25 2.4.2 帮助中有的几类函数 26 2.4.3 帮助中没有的函数 28 2.5 Windows的...

    Windows内核安全驱动开发(随书光盘)

    2.2.3 字符串 20 2.3 重要的数据结构 21 2.3.1 驱动对象 21 2.3.2 设备对象 22 2.3.3 请求 24 2.4 函数调用 25 2.4.1 查阅帮助 25 2.4.2 帮助中有的几类函数 26 2.4.3 帮助中没有的函数 28 2.5 Windows的...

Global site tag (gtag.js) - Google Analytics