C语言实用小函数:字符串修剪示例

需积分: 1 0 下载量 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语言初学者来说,理解并掌握这类函数的实现方式有助于提高编程能力。