【问题标题】:Skipping certain characters跳过某些字符
【发布时间】:2013-09-16 00:11:11
【问题描述】:

我用 C 语言创建了一个程序,它将读取文件的内容,然后将其输出到一个新文件中。但是,我需要扩展这个程序以跳过 HTML 标记。有人能指出我应该做什么或应该怎么做的正确方向吗?

我所知道的只是分别跳过字符,但我如何跳过它以包容性地跳过“”中的所有内容?

如果可能,请不要给我完整的代码,因为这是作业,我想从中学习。

谢谢!

【问题讨论】:

  • 有一个标志,指示您是否需要保留符号。如果 character=="" 则将其更改为 false。
  • 唯一真正正确的答案是“使用 HTML 解析器”。任何复杂到足以可靠地导航极端情况的解决方案都将比它的价值更麻烦,而且你基本上只拥有 HTML 解析器的硬半部分。

标签: c input character output


【解决方案1】:

首先,您设置一个标志(称为html_flag)并将其设置为0(false)。您可以通过将其声明为int 来做到这一点。当你遍历每个字符时,如果html_flag0,则输出所有内容,直到你点击< 字符。此时,您将 html_flag 设置为 1。如果标志为 1,则不输出任何扫描的字符。当遇到 > 字符时,将标志转回 0,并继续在整个文件。

【讨论】:

  • 中断<img alt=">">
【解决方案2】:

在阅读文件时,您可以在找到“”时关闭该标志。

当这个标志出现时,你只需忽略并读取下一个字符。

我能想到的唯一问题是如果你的 HTML 有这样的东西:

<a href="something with '>'">

在这种情况下,您将需要另一个“”标志。

【讨论】:

    【解决方案3】:

    有一个布尔标志,指示您是否需要保留符号。

    伪代码:

    tag = false
    for(ch in text){
        if(ch == "<")
            tag = true
        if not tag
            print ch
        if(ch == ">")
            tag = false
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-09
      • 2017-07-24
      • 2016-12-07
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多