编写函数ltrim,用来删除字符串中的前导空格,中间和尾部的空格不删除。例如:字符串为:" A BC DEF ",删除后的结果是"A BC DEF "。要求函数形参采用指针变量
时间: 2024-03-01 20:51:44 浏览: 32
可以使用指针变量来实现函数 `ltrim()`,用来删除字符串中的前导空格。下面是一个示例代码:
```c
#include <stdio.h>
#include <ctype.h>
char *ltrim(char *str) {
while (isspace(*str)) {
str++;
}
return str;
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%[^\n]", str);
char *result = ltrim(str);
printf("删除前导空格后的字符串为:%s\n", result);
return 0;
}
```
在函数 `ltrim()` 中,使用一个 `while` 循环遍历字符串,每次判断指针变量 `str` 所指向的字符是否为空格字符(包括空格、制表符、换行符等),如果是则将指针变量 `str` 向后移动一位。当遍历到第一个非空格字符时,循环退出,函数返回指针变量 `str` 的值,即为删除前导空格后的字符串的首地址。
在 `main()` 函数中,首先定义一个字符数组 `str`,并使用 `scanf()` 函数从标准输入中读取一个字符串,可以使用 `%[^\n]` 格式控制符来读取包括空格在内的整个字符串。然后调用函数 `ltrim()`,将字符数组 `str` 的首地址作为参数传递给函数。最后输出函数返回的删除前导空格后的字符串即可。
需要注意的是,函数 `ltrim()` 只能删除字符串中的前导空格,如果要删除中间和尾部的空格,可以使用类似的方法,或者使用库函数 `isspace()` 和 `strlen()` 来实现。