用c语言实现有一个前中后都有空格的字符串,删除其前面的所有空格,中间和后面的空格不要删除。
时间: 2024-03-18 14:40:45 浏览: 14
可以使用指针来实现这个功能。首先,使用指针遍历字符串,找到第一个非空格字符的位置。然后,将指针指向该位置,开始复制字符串。在复制过程中,遇到空格时,检查下一个字符是否为非空格字符,如果是,则将该空格复制到新字符串中,否则跳过空格。复制完成后,在新字符串末尾添加一个空字符即可。
下面是实现代码:
```c
#include <stdio.h>
#include <string.h>
void remove_front_spaces(char *str) {
char *p1 = str;
char *p2 = str;
// 找到第一个非空格字符的位置
while (*p1 == ' ') {
p1++;
}
// 复制字符串
while (*p1 != '\0') {
if (*p1 == ' ') {
// 检查下一个字符是否为非空格字符
if (*(p1 + 1) != ' ') {
*p2++ = *p1++;
} else {
p1++;
}
} else {
*p2++ = *p1++;
}
}
// 添加空字符
*p2 = '\0';
}
int main() {
char str[] = " hello world ";
remove_front_spaces(str);
printf("%s\n", str); // 输出 "hello world "
return 0;
}
```