c语言如何去除输出末尾空格
时间: 2024-10-14 14:05:24 浏览: 83
在C语言中,如果你想要去除输出字符串末尾的空格,可以使用`strcspn()`函数或者手动遍历字符串并检查每个字符是否为空格。以下是两种方法:
1. 使用`strcspn()`: 这个函数返回第一个不在指定字符集合(这里是空格)中的字符的位置。你可以获取字符串长度减去这个位置,就可以得到非空格部分的长度。
```c
#include <string.h>
#include <stdio.h>
int main() {
char str[] = "Hello World!";
size_t len = strlen(str);
int index = strcspn(str, " ");
printf("%.*s", len - index, str); // 输出到不包含空格的部分
}
```
2. 手动遍历: 创建一个新的缓冲区,并只将非空格字符复制过去。
```c
#include <stdio.h>
void remove_trailing_spaces(char *str) {
int i = 0;
while (str[i] != '\0') {
if (str[i] != ' ') {
str[i + 1] = str[i]; // 将非空格字符复制到新位置
}
i++;
}
str[i] = '\0'; // 结束字符串
}
int main() {
char str[] = "Hello World!";
remove_trailing_spaces(str);
printf("%s", str); // 输出: HelloWorld!
}
```
阅读全文