#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);
}
#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);
}