| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 559 人关注过本帖
标题:有哪位大神教一下怎么把这个程序实现其查询和替换功能?
只看楼主 加入收藏
messilxs
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-11-23
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:4 
有哪位大神教一下怎么把这个程序实现其查询和替换功能?
文本编辑器.zip (1.42 MB)
文本编辑器cpp.zip (1.33 KB)


[ 本帖最后由 messilxs 于 2013-11-23 23:06 编辑 ]
2013-11-23 13:41
流年!
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:107
注 册:2013-11-7
收藏
得分:20 
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#define maxsize 1024*32
#include <Windows.h>

int strindex(char *s,char *t)         //查询功能
{
    int i,j,k=0,len_s,len_t,num;
    i=0;
    j=0;
    len_s=strlen(s);
    len_t=strlen(t);
    for(i=0;i<len_s;i++)
    {
        if(s[i]==t[j])   j++;
        else             j=0;
        if(j==len_t)
        {
            k++;
            j=0;
        }        
    }
   return k;
}


void readfile(char *a)      //读取文件功能
{
FILE *fp;
if((fp=fopen("../abc.txt","r"))==NULL)
        printf("cannot open the file!");
char ch;
int i=0;
while((ch=getc(fp))!=-1) a[i++]=ch;
a[i]='\0';
fclose(fp);
}


void writefile(char *s,char *p,char *t)   //替换功能
{
    int i,j,k=0,len_s,len_p,len_t,num;
    i=0;
    j=0;
    len_s=strlen(s);
    len_p=strlen(p);
    len_t=strlen(t);
    for(i=0;i<len_s;i++)
    {
        if(s[i]==t[j])
        {
           //s[i]=p[j];   //将查到的部分替换掉
           j++;
        }
        else j=0;        
        if(j==len_t)
        {
            for(int m=len_t ,n=0;m>0;m--)
            {
                s[i-m+1]=p[n];
            }
            k++;
            j=0;
        }        
    }
}


void main()
{
    printf("**************欢迎使用文本编辑器**************\n");
    int i;
    char s[maxsize],t[48],p[maxsize];
    char W;
    readfile(s);
    //getchar();
    //Sleep(1000);
    printf("文本内容:\n");
    printf("----------------------------------------\n");
    printf("%s\n",s);
    printf("----------------------------------------\n");
    printf("请输入需要查询的内容:");
    scanf("%s",t);
    strcpy(t,"123");
    i=strindex(s,t);
    if(i==0)   printf("很抱歉,文本中没有您需要查找的内容!\n");     
    else
    {
        printf("已完成对文本的搜索,共有%d处被找到!\n",i);
        printf("是否需要替换所查询的内容?(Y/N):");
        scanf("%c",&W);
        scanf("%c",&W);
        if(W=='Y' || W=='y')
        {
            printf("替换为:");
            scanf("%s",p);
            writefile(s,p,t);
            printf("替换成功!\n替换后的文本内容:\n");
            printf("----------------------------------------\n");
            printf("%s\n",s);
            printf("----------------------------------------\n");
        }
    }
    printf("**************欢迎下次继续使用!**************\n");
    //Sleep(10000);
}
2013-11-25 17:20
流年!
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:107
注 册:2013-11-7
收藏
得分:0 
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#define maxsize 1024*32
#include <Windows.h>

int strindex(char *s,char *t)         //查询功能
{
    int i,j,k=0,len_s,len_t,num;
    i=0;
    j=0;
    len_s=strlen(s);
    len_t=strlen(t);
    for(i=0;i<len_s;i++)
    {
        if(s[i]==t[j])   j++;
        else             j=0;
        if(j==len_t)
        {
            k++;
            j=0;
        }        
    }
   return k;
}


void readfile(char *a)      //读取文件功能
{
FILE *fp;
if((fp=fopen("../abc.txt","r"))==NULL)
        printf("cannot open the file!");
char ch;
int i=0;
while((ch=getc(fp))!=-1) a[i++]=ch;
a[i]='\0';
fclose(fp);
}


void writefile(char *s,char *p,char *t)   //替换功能
{
    int i,j,k=0,len_s,len_p,len_t,num;
    i=0;
    j=0;
    len_s=strlen(s);
    len_p=strlen(p);
    len_t=strlen(t);
    for(i=0;i<len_s;i++)
    {
        if(s[i]==t[j])
        {
           //s[i]=p[j];   //将查到的部分替换掉
           j++;
        }
        else j=0;        
        if(j==len_t)
        {
            for(int m=len_t ,n=0;m>0;m--)
            {
                s[i-m+1]=p[n];
            }
            k++;
            j=0;
        }        
    }
}


void main()
{
    printf("**************欢迎使用文本编辑器**************\n");
    int i;
    char s[maxsize],t[48],p[maxsize];
    char W;
    readfile(s);
    //getchar();
    //Sleep(1000);
    printf("文本内容:\n");
    printf("----------------------------------------\n");
    printf("%s\n",s);
    printf("----------------------------------------\n");
    printf("请输入需要查询的内容:");
    scanf("%s",t);
    //strcpy(t,"123");
    i=strindex(s,t);
    if(i==0)   printf("很抱歉,文本中没有您需要查找的内容!\n");     
    else
    {
        printf("已完成对文本的搜索,共有%d处被找到!\n",i);
        printf("是否需要替换所查询的内容?(Y/N):");
        scanf("%c",&W);
        scanf("%c",&W);
        if(W=='Y' || W=='y')
        {
            printf("替换为:");
            scanf("%s",p);
            writefile(s,p,t);
            printf("替换成功!\n替换后的文本内容:\n");
            printf("----------------------------------------\n");
            printf("%s\n",s);
            printf("----------------------------------------\n");
        }
    }
    printf("**************欢迎下次继续使用!**************\n");
    //Sleep(20000);
}
 前面的有点问题 strcpy(t,"123");忘了删了
2013-11-25 17:26
messilxs
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-11-23
收藏
得分:0 
我是想在MFC中实现啊?我有点不懂你的意思,不好意思。
2013-11-25 22:27
流年!
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:107
注 册:2013-11-7
收藏
得分:0 
大哥这有什么区别吗
2013-11-26 10:16
快速回复:有哪位大神教一下怎么把这个程序实现其查询和替换功能?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012141 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved