用C语言编写文本检索程序

用C语言编写文本检索程序,第1张

#include"stdioh"

#include"stdlibh"

main()

{

FILE fp;

char str[80],p,head;

int n=0;

long filelen;

loop1: printf("请输入您要用于 *** 作的文件名及其完整路径:\n");

gets(str);

fp=fopen(str,"rb+");

if(fp==NULL)

{

printf("找不到指定文件,要指定新文件吗(y=是的,要指定新文件\telse=不用了,退出程序)\t");

gets(str);

if((char)tolower((int)str[0])=='y')goto loop1;

else exit(0);

}

printf("请输入您要查找并替换的字符(如果输入的字符数量大于1本程序会自动舍去多余的部分)\n");

gets(str);

printf("请输入您要将找到的字符或字符串替换为的字符(自动舍去多余部分)\n");

gets(&str[1]);

fseek(fp,0L,2);

filelen=ftell(fp);

fseek(fp,0L,0);

head=(char )malloc(filelen);

fread(head,filelen,1,fp);

for(p=head;p<head+filelen/1L;p++)if(p==str[0]){p=str[1];n++;}

fseek(fp,0L,0);

fwrite(head,filelen,1,fp);

fclose(fp);

printf("替换已经完成,共替换%d处\n",n);

}

#include<stdioh>

#include<stringh>

#include<stdlibh>

char fun(char a,char b)

{

char t;

strcpy(t,a);

strcpy(a,b);

strcpy(b,t);

}

struct st{

char a[6][20];

};

int main()

{

struct st s[111];

int n,x[111],k=0,ts,sum=0;

scanf("%d",&n);

printf("学号 姓名 数学 物理 英语 计算机\n");

for(int i=0;i<n;i++)

{

sum=0;

for(int j=0;j<6;j++)

{

scanf("%s",s[i]a[j]);

if(j!=0&&j!=1)

{

sum+=atoi(s[i]a[j]);

}

}

x[k++]=sum/3;

}

for(int i=0;i<k;i++)

{

for(int j=0;j<k-i-1;j++)

{

if(x[j]>x[j+1])

{

ts=x[j];

x[j]=x[j+1];

x[j+1]=ts;

for(int l=0;l<6;l++)

fun(s[j]a[l],s[j+1]a[l]);

}

}

}

printf("学号    姓名    数学    物理    英语    计算机     平均成绩\n");

for(int i=0;i<n;i++)

{

for(int j=0;j<6;j++)

{

printf("%s",s[i]a[j]);

for(int k=0;k<8-strlen(s[i]a[j]);k++)

printf(" ");

}

printf("%8d\n",x[i]);

}

return 0;

}

是因为你的目的串中有个空格,用scanf输入的时候会把空格前的当成输入了这个问题吧

我写了个代码可以处理你上面说的这个问题,如果相同打印7,不同打印0,你要是需封成函数可以在我的基础上修改代码在vc++6上编译运行代码如下:

#include <stdioh>

#include <stringh>

#include <conioh>

#define DEBUG 1

int main()

{

char src[512] = "";

char dst = "asdf kjhf";

int fg = 0;//脚标

char ch;

printf("请输入字符串,回车结束输入:\n");

#ifdef DEBUG

//此方法可以不用回车当结束符亦可

while (ch = getch()) {

printf("%c",ch);//回显输入

if (ch == 13) {

putchar(10);//换行符

break;

} else {

src[fg++] = ch;

if (fg == 511) {

break;//再大就越界了

}

}

}

#else

//此方法结束符必须为回车用此方法时将#define DEBUG 1注释即可

gets(src);

#endif

// printf("src:%s\ndst:%s\n",src,dst);

if (strcmp(src, dst) == 0) {

printf("7\n");

} else {

printf("0\n");

}

return 0;

}

可以编写c语言的软件有:Vim、C编译器、Dev-C、Code::Blocks、VisualStudio等。

1、Vim

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。

1999年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了SlashdotBeanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线,总的来看,Vim和Emacs在文本编辑方面都是非常优秀的。

2、C编译器

“BorlandC/C551forWin32”是一个C/C编译器,其功能完整、包含多种SDK,且容量极小,安装版本大小仅8MB。Borland公司的旗舰级产品“CBuilder5”内置的就是这一编译器。

由于使用了GNUC/C内核,所以在做软件移植时非常的方便,你可以方便的将一个程序移植到任意一个有GNUC/C的平台。而且由于基于GNUC/C的开放源代码软件很多,所以使用Dev-C是一个很好的选择。但由于它的调试不便,帮助不全等问题,也使得它在推广上举步艰难,远比不上BorlandC/C、OpenWatcomC/C这两个同是免费的编译器。

3、Dev-C

Dev-C(或者叫做Dev-Cpp)是Windows环境下的一个轻量级C/C集成开发环境(IDE)。它是一款自由软件,遵守GPL许可协议分发源代码。它集合了功能强大的源码编辑器、MingW64/TDM-GCC编译器、GDB调试器和AStyle格式整理器等众多自由软件,适合于在教学中供C/C语言初学者使用,也适合于非商业级普通开发者使用。

4、Code::Blocks

Code::Blocks是一个开放源码的全功能的跨平台C/C集成开发环境。Code::Blocks是开放源码软件。Code::Blocks由纯粹的C语言开发完成,它使用了著名的图形界面库wxWidgets(3x)版。对于追求完美的C程序员,再也不必忍受Eclipse的缓慢。

5、VisualStudio

MicrosoftVisualStudio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。

所写的目标代码适用于微软支持的所有平台,包括MicrosoftWindows、WindowsMobile、WindowsCE、NETFramework、NETCompactFramework和MicrosoftSilverlight及WindowsPhone。

#include <stdioh>

void jiami(FILE fp,FILE fp1)

{ unsigned char c,c1;

while(fscanf(fp,"%c",&c)==1)

{ c1=c/16+c%1616;

fprintf(fp1,"%c",c1);

}

fclose(fp);

fclose(fp1);

}

void jiemi(FILE fp,FILE fp1)

{ jiami(fp,fp1);

}

int main()

{ int a,b;

FILE fp,fp1,fp2;

fp=fopen("0cpp","r");

fp1=fopen("jiamitxt","w");

jiami(fp,fp1);

fp=fopen("jiamitxt","r");

fp1=fopen("jiemitxt","w");

jiemi(fp,fp1);

printf("加密文件是jiamitxt,解密文件是jiemitxt,请查看\n");

return 0;

}

/楼上的题目会误人子弟的,这样肯定没法过关,下面的才可以!/

#include <stdioh>

#include <stdlibh>

#include <stringh>

#define szBUF 256

int main(int argc, char argv[])

{

char filename[szBUF], buf[szBUF]; int r = 0; FILE f = 0;

if(argc < 2) {

printf("please input the file name:");

gets(filename);

}else

strcpy(filename, argv[1]);

//end if

f = fopen(filename, "r");

if(!f) {

printf("file %s open fault!\n", filename);

return 0;

}//end if

while(!feof(f)) {

r = fread(buf, sizeof(char), szBUF, f);

if(r < 1) break;

fwrite(buf, sizeof(char), r, stdout);

}//end while

fclose(f);

system("pause");

return 0;

}

以上就是关于用C语言编写文本检索程序全部的内容,包括:用C语言编写文本检索程序、c语言怎么编写、如何用c语言编辑文字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9838081.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存