#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语言编辑文字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)