文本编辑器 纯代码

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

#include
#include
#include
struct pop
{
char temp[100];
}s;
struct jian
{
char re[100];
}k;
void edit()
{
printf("请输入一行字符串:\n");
for(int i=0;i<100;i++)
{
scanf("%c",&s.temp[i]);
if(s.temp[i]==' ') continue;
if(s.temp[i]=='\n') break;
}
printf("%c",s.temp[80]);

}
void revise()
{
printf("请输入你要修改的地方以及他的字符:\n");
int t;
char a;
scanf("%d %c",&t,&a);
for(int i=0;i<10;i++)
{if(i==t-1)
s.temp[t-1]=a;
}
printf("%s\n",s.temp);
}
void add()
{
char a;
int n;
printf("请输入你要插入的地方。它的数值为:字符为:\n");
scanf("%d %c",&n,&a);
for(int i=99;i>=n-1;i--)
{

s.temp[i]=s.temp[i-1];
}
s.temp[n-1]=a;
printf("插入后的字符串为.\n");
printf("%s",s.temp);
printf("\n");


}
void del()
{
int n;
printf("请输入你要删除的地方:\n");
scanf("%d",&n);
for(int t=n-1;t<100;t++)
{
s.temp[t]=s.temp[t+1];
}
printf("删除后的结果为:\n");
printf("%s",s.temp);

}
void menu()
{
printf(" **********欢迎使用文本编译器************\n");
printf(" ** 1.编辑 2.插入 **\n");
printf(" ** 3.修改 4.删除 **\n");
printf(" ** 5.保存 6.检索字符串 ** \n");
printf(" ** 0.退出 **\n");
printf(" ****************************************\n");


}
int value()
{
int n;
n=1;
return n;
}
void jiansuo()/*这个函数我写了半天*/
{
int c=0,n,r=0,j=0;//n为输入字符串长度,r为s.temp数组的变化数,j为k.re数组的变化数。
printf("请输入你要检索的字符串:\n");
for(int i=0;i<100;i++)
{
scanf("%c",&k.re[i]);
if(k.re[i]==' ') continue;
if(k.re[i]=='\n') break;

}
n=strlen(k.re)-1;/* 这里由于最后一位回车键在for循环中还是录入了字符串中,所以要减一个*/
while(r<100&&j{
if(s.temp[r]==k.re[j])
{
++r;
++j;
if(j==n)
c=value();
}
else
{r=r-j+1;
j=0;
}
}
if(c==1)
printf("该字符串存在\n");
else
printf("该字符串不存在\n");
}
void save()
{
printf("该字符已保存,最后字符为:\n");
printf("%s",s.temp);
}

void main()
{
menu();
int t,f=1;
while(f)
{
printf("请输入你的选择:(输入有误将默认为退出!)\n");
cin>>t;
switch(t)
{

case 1: edit(); break;
case 2: add(); break;
case 3: revise(); break;
case 4: del(); break;
case 5: save(); break;
case 6: jiansuo(); break;
case 0: f=0;
}
}
printf("谢谢使用文本编译器!");
}

相关文档
最新文档