22、请编写一个函数,函数的功能是删除字符串中的所有空格。 例如, 主函数中输入"asd af aa z67", 则输出为 "asdafaaz67"。使用c语言
时间: 2024-03-19 16:46:18 浏览: 111
下面是一种简单的实现方式:
```c
#include <stdio.h>
#include <string.h>
void remove_spaces(char *str) {
int i, j = 0;
for (i = 0; str[i]; i++) {
if (str[i] != ' ') {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // 去掉fgets自动添加的换行符
remove_spaces(str);
printf("删除空格后的字符串为:%s\n", str);
return 0;
}
```
首先定义一个 `remove_spaces` 函数,它接受一个指向字符串的指针作为参数,用于删除字符串中的空格。具体实现方式是使用两个指针 `i` 和 `j`,分别表示当前遍历到的字符和最终结果中的字符位置。当遍历到非空格字符时,将其放到结果字符串中,然后将 `j` 加一。最后在结果字符串的末尾添加一个空字符,表示字符串的结束。
在 `main` 函数中,首先读入一个字符串,然后调用 `remove_spaces` 函数删除其中的空格,最后输出结果。需要注意的是,使用 `fgets` 读入字符串时会自动添加一个换行符,需要用 `strcspn` 函数将其替换为空字符。
阅读全文