【问题标题】:What are trailing blanks and tabs? K&R Exercise 1.18什么是尾随空格和制表符? K&R 练习 1.18
【发布时间】:2015-05-30 17:27:25
【问题描述】:

在 Kernighan & Ritchie 的 The C Programming Language 的 ex 1.18 中,要求读者编写一个程序来删除尾随空格和制表符,并删除整个空白行。尾随空格和制表符是什么意思?连续的制表符或空格是否尾随空格和制表符?一个完全空行也意味着只是连续的 '\n' s 还是 "\n \n" 也被视为空行?

【问题讨论】:

  • 你知道制表符和空格符吗?尾随 = 在行尾。
  • 建议的定义:字符串char直到'\0'"\n \n"包含2个char如果可能,最多包括'\n')。 “一个完全空白的行” --> 仅由空格组成的行。

标签: c kernighan-and-ritchie


【解决方案1】:

尾随空格通常是指跟在一行最后一个非空格字符之后的空格。

我认为"\n \n" 应该被视为一个空行(这是Apache StringUtils 使用的空白与空的区别:空字符串的长度为0,空白字符串仅包含空格)。无论哪种方式,您都将删除它们,因为您会先删除尾随空格,将它们留空。

【讨论】:

  • <ctype.h> 中包含的函数isspace() 定义了所有的公共空格字符。
【解决方案2】:

尾随制表符和空格 - 行尾的制表符和空格

出于所有实际目的,我会将\n\n\n \n 视为空行

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 2013-01-16
    • 2021-05-23
    • 2017-12-21
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多