实现简单的输入编辑,录入正确的字符串,出现‘$’,表示撤销前一个输入, 发现连续的‘$’,表示连续撤销前面的输入;发现‘%’,表示放弃前面所有录入; 生成最终结果。

本文详细阐述了如何实现输入编辑功能,包括撤销操作、放弃录入等,通过使用字符数组和字符串函数,生成最终字符串结果。
#include <stdio.h>
#include <string.h>




/*描述:       实现简单的输入编辑,录入正确的字符串,出现‘$’,表示撤销前一个输入,
     发现连续的‘$’,表示连续撤销前面的输入;发现‘%’,表示放弃前面所有录入;
     生成最终结果。
运行时间:    无限制
内存限制:    无限制
输入:        输入含有编辑信息的字符串
输出:        输出最终字符串
样例输入:    You areah$$ great!
样例输出:    You are great!*/
void main()
{
char a[128];
char b[128];
int len,i,j=0,k;
int c,n=0;
c=getchar();
for(i=0,len=0;i<128&&(c!=EOF);i++,len++)
{
//putchar(c);
a[i]=c;
c=getchar();


}
a[i]='\0';
len=strlen(a);
printf("\nlen=%d\n",len);


for(i=0,j=0;i<len;i++)
{
if(a[i]=='%')
{
j=i+1;
}

}


len=strlen(a);
printf("\nj=%d,%s\n",j,a);
//if(j>=1)
//j--;
for(i=j,n=0,k=0;i<len;i++,k++)
{
if(a[i]=='$')
{
printf("\n%d,%s,k=%d\n",__LINE__,__FILE__,k);
if(k>0)
{
//b[k]=0;
b[k-1]=0;
k=k-2;
}
else
{
k--;
}


}
else 
{
printf("\n%d,%s\n",__LINE__,__FILE__);
b[k]=a[i];


}


}
b[k]='\0';
printf("\n%s\n",b);
}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值