串的查找与替换源程序

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include
#include
#include
#include
FILE * fp;
char str[500];
char chazhao[15];
char tihuan[15];
/*从文件初始化数组*/
void initstr()
{
int i=0;
fp=fopen("English.txt","rt");/*重新打开文件*/
if(fp!=NULL)
{
do
{
fscanf(fp,"%c",&str[i]);
i++;
}while(!feof(fp)) ;
fclose(fp);

}
}
/*查找第一个出现要查找字符的下标*/
int chazhaostring()
{
int i,j,k;
for(i=0;i{ j=i;k=0;
while((str[j]==chazhao[k])&&(chazhao[k]!='\0')&&(str[j]!='\0'))
{ j++;k++;
}
if(chazhao[k]=='\0') return i;
}
return -1;
}
/*输入要替换的字符串*/
void inputchatihuan()
{ printf("请输入要查找的单词:\n");
scanf("%s",chazhao);
printf("请输入要替换的单词:\n");
scanf("%s",tihuan);
getchar();
}


/*查看文章中共有多少个要查找的字符*/
void chazhaos()
{
int i,j,k,all=0;
printf("请输入要查找的单词:\n");
scanf("%s",chazhao);
for(i=0;i{ j=i;k=0;
while((str[j]==chazhao[k])&&(chazhao[k]!='\0')&&(str[j]!='\0'))
{ j++;k++;
}
if(chazhao[k]=='\0') all++;
}

printf("查找成功!\n");
printf("一共查找到了 %d 个 %s",all,chazhao);

printf("\n按任意键返回.....");
getchar();getchar();
}
/*从指定的下标开始插入dest数组中的元素*/
void charu(char source[],int index,char dest[]){
int i,j,k,m;
/*第一步,计算串dest的长度,存入j*/
j=strlen(dest);
/*第二步,计算串source的长度,存入k*/
k=strlen(source);

source[j+k]='\0';
i=j+k-1;m=k-1;
while(m>=index)
{
source[i]=source[m];
i--;m--;
}
i=index; m=0;
while(m{source[i]=dest[m];i++;m++;}

}

/*将str中要替换的内容替换掉*/
void tihuans()
{
int a,b=0;
inputchatihuan();
do
{ a=chazhaostring();
b=a;
if(b==-1)
{
printf("这个单词不存在!\n");
return;
}
else
{ while(str[b+strlen(chazhao)]!='\0')
{str[b]=str[b+strlen(chazhao)];
b++;
}
str[b]='\0';
charu(str,a,tihuan);
}
a=chazhaostring();
}while(a!=-1);
printf("替换成功\n");
printf("\n按任意键返回.....");
getchar();
}
/*保存修改后的文章信息*/
void save()
{ int i=0;
FILE *fp;
fp=fopen("English.txt","w");
while(i{
fputc(str[i],fp);
i++;
}
}
void welform()
{
system("cls");
printf(" 系统主菜单 \n");
printf("*****************************************\n");
printf("* 1: 输出内容 *\n");
printf("*---------------------------------------*\n");
printf("* 2: 查找 *\n");
printf("*---------------------------------------*\n");
printf("* 3: 替换

*\n");
printf("*---------------------------------------*\n");
printf("* 0: 退出 *\n");
printf("*****************************************\n");
printf("\n\n请输入命令:\n");
}

void main()
{
char ch;
initstr();

while(1)
{
welform();
scanf("%d",&ch);
switch(ch)
{
case 1:system("cls");printf("%s\n",str);getchar();getchar();break;
case 2:system("cls");chazhaos();break;
case 3:system("cls");tihuans();break;
case 0:save(); exit(0);
default: printf("\n你输入了错误的命令!\n");
printf("按任意键返回.....");
getchar();
getchar();
}
}

}

相关文档
最新文档