对C标准中空白字符(空格、回车符(\r)、换行符(\n)、水平制表符(\t)、垂直制表符(\v)、换页符(\f))的理解

本文介绍了C标准库中的isspace()函数,详细讲解了空格、回车符、换行符、水平制表符、垂直制表符和换页符在C语言中的作用和ASCII值。通过示例展示了这些字符在终端和文本文件中的不同表现,特别是在不同操作系统下的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       C标准库里<ctype.h>中声明了一个函数:

              int isspace(int c);

       该函数判断字符c是否为一个空白字符。

       C标准中空白字符有:空格(‘ ’)、换页(‘\f’)、换行(‘\n’)、回车(‘\r’)、水平制表符(‘\t’)、垂直制表符(‘\v’)六个。下面是本人的一些理解。

 

空格

       相信大家对它非常了解。值得注意的是它的ASCII码为0x20,而不是0x00。0x00代表空(NULL)。本人初学C时认为空格值为0,惭愧惭愧。

 

回车(‘\r’)

       我们在编辑文件时,一般敲一下回车键就会转到下一行编辑。那么“回车”和“换行”是不是一回事呢?

       显然不是的。大家不要被键盘上回车键效果所蒙蔽,此“回车”(回车符)非彼“回车”(回车键)。

### Java 替换字符串中的空格、回车、换行符制表符 在 Java 中,有多种方式可以处理字符串并移除其中的特定字符空格、回车(`\r`)、换行符(`\n`)以及制表符(`\t`)。一种常见的方式是利用正则表达式配合 `String` 类下的 `replaceAll()` 方法实现[^1]。 对于更灵活的需求,也可以采用 `Pattern` 和 `Matcher` 组合的方式来完成相同的功能[^3]: ```java import java.util.regex.Matcher; import java.util.regex.Pattern; public class RemoveSpecialChars { public static void main(String[] args) { String originalStr = " Hello \t World!\nThis is a test string.\r"; // 使用正则表达式去除空白字符(包括空格制表符换行符) String resultUsingReplaceAll = originalStr.replaceAll("[\\s\\t\\r\\n]+", ""); System.out.println("Result using replaceAll(): " + resultUsingReplaceAll); // 或者使用 Pattern 和 Matcher 的组合 Pattern pattern = Pattern.compile("[\\s\\t\\r\\n]+"); Matcher matcher = pattern.matcher(originalStr); String resultUsingPatternMatcher = matcher.replaceAll(""); System.out.println("Result using Pattern and Matcher: " + resultUsingPatternMatcher); } } ``` 上述代码展示了两种有效清除给定字符串内不必要字符的方法。第一种直接调用了 `replaceAll()` 函数,并传入了一个匹配目标字符集的正则表达式作为参数;第二种则是先创建了模式对象再通过该模式实例化匹配器来进行替换操作。这两种方法都能达到预期效果,在实际开发过程中可根据具体场景和个人偏好选择合适的一种[^2]。 值得注意的是,当只需要简单地替换单个字符而非复杂模式时,还可以考虑使用 `replace()` 方法,不过它并不支持正则表达式的应用。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值