C语言实用小函数:字符串修剪示例
需积分: 1 85 浏览量
更新于2024-09-11
收藏 22KB TXT 举报
"这篇资源提供了一些C语言中的实用小函数,包括字符串修剪功能,帮助C语言初学者更好地理解和使用这些常见的字符串处理技巧。"
在C语言编程中,字符串处理是常见的任务之一,尤其是在处理用户输入或者读取文件时。这里提供的两个小函数`strTrim()`和`strTrimL()`就是针对字符串修剪的实用函数。
`strTrim()`函数用于去除字符串首尾的空白字符,包括空格 `' '`、制表符 `'\t'` 和换行符 `'\n'`。这个函数的工作原理是首先计算字符串的长度,然后从头部开始遍历,找到第一个非空白字符的位置`l`,接着从尾部开始遍历,找到最后一个非空白字符的位置`r`。最后,它将从`l`到`r`之间的字符复制到字符串的开头,并将新字符串的末尾设置为空字符`\0`。这样就得到了一个只包含非空白字符的字符串。
```c
char* strTrim(char* s) {
int i, l, r, len;
for (len = 0; s[len]; len++); // 计算字符串长度
for (l = 0; (s[l] == ' ' || s[l] == '\t' || s[l] == '\n'); l++); // 查找首个非空白字符
if (l == len) {
s[0] = '\0'; // 如果全是空白,字符串清空
return s;
}
for (r = len - 1; (s[r] == ' ' || s[r] == '\t' || s[r] == '\n'); r--); // 查找尾部非空白字符
for (i = l; i <= r; i++) s[i - l] = s[i]; // 复制非空白字符
s[r - l + 1] = '\0'; // 设置新字符串末尾为空字符
return s;
}
```
`strTrimL()`函数与`strTrim()`类似,但只修剪字符串的左侧空白,保留了尾部可能存在的空白字符。它的实现也是通过遍历字符串找到第一个非空白字符的位置`l`,然后将从该位置到字符串末尾的所有字符向前移动,覆盖掉前面的空白字符。
```c
char* strTrimL(char* s) {
int i, l, len;
for (len = 0; s[len]; len++); // 计算字符串长度
for (l = 0; (s[l] == ' ' || s[l] == '\t' || s[l] == '\n'); l++); // 查找首个非空白字符
if (l == len) {
s[0] = '\0'; // 全是空白,字符串清空
return s;
}
for (i = l; i < len; i++) s[i] = s[i + l]; // 移动字符覆盖空白
s[len - l] = '\0'; // 设置新字符串末尾为空字符
return s;
}
```
这两个函数对于处理用户输入或者数据清理非常有用,它们可以确保你得到的是没有多余空白字符的字符串。在实际开发中,这样的函数通常会被封装到一个字符串处理库中,方便开发者调用。对于C语言初学者来说,理解并掌握这类函数的实现方式有助于提高编程能力。
244 浏览量
177 浏览量
230 浏览量
2010-09-15 上传
zhangyongliang0
- 粉丝: 9
- 资源: 10
最新资源
- WPF渲染层字符绘制原理探究及源代码解析
- 海康精简版监控软件:iVMS4200Lite版发布
- 自动化脚本在lspci-TV的应用介绍
- Chrome 81版本稳定版及匹配的chromedriver下载
- 深入解析Python推荐引擎与自然语言处理
- MATLAB数学建模算法程序包及案例数据
- Springboot人力资源管理系统:设计与功能
- STM32F4系列微控制器开发全面参考指南
- Python实现人脸识别的机器学习流程
- 基于STM32F103C8T6的HLW8032电量采集与解析方案
- Node.js高效MySQL驱动程序:mysqljs/mysql特性和配置
- 基于Python和大数据技术的电影推荐系统设计与实现
- 为ripro主题添加Live2D看板娘的后端资源教程
- 2022版PowerToys Everything插件升级,稳定运行无报错
- Map简易斗地主游戏实现方法介绍
- SJTU ICS Lab6 实验报告解析