zoukankan      html  css  js  c++  java
  • csu 1019 Simple Line Editor

    找到之前的错误了:

            else if (ch=='#' && i>=0) --i;

    初始条件是 i = -1; 这样i = - 1;时,如果输入“#”,应该被忽略,但这句话其实没有做到。

    应该这样写:

              else if (t[i]=='#') j = (j>=0 ? j-1:-1);

    由于题目中没有提到一行文本到底有多少字符,干脆定义最大为 100 吧,什么?竟然通过了!

    # include <stdio.h>
    # include <string.h>

    # define MAXN 100

    char t[MAXN], s[MAXN];
    int T;

    int main()
    {
    int i, j, len;

    scanf("%d", &T);
    getchar();
    while (T--)
    {
    fgets(t, MAXN, stdin);
    len = strlen(t);
    for (j = i = 0; i < len; ++i)
    if (t[i] == '@') j = 0;
    else if (t[i]=='#') j = (j>0 ? j-1:0);
    else s[j++] = t[i];
    s[j] = '\0';
    fputs(s, stdout);
    }

    return 0;
    }

    实际上只用一个 getcha() 和一个数组就行了,使用了栈。

  • 相关阅读:
    coredata
    去除XIB上UITextView光标垂直居中问题
    IOS 开发使用SVN
    CSS层叠样式表--找到标签
    简单的爬虫
    HTML
    13索引
    12事务
    12内建函数
    11存储过程
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2398747.html
Copyright © 2011-2022 走看看