用C语言编写一个函数,函数的功能是删除字符串中的所有空格。 例如, 主函数中输入"asd af aa z67", 则输出为 "asdafaaz67"。
时间: 2024-03-08 12:47:36 浏览: 21
下面是一个实现该功能的C语言函数的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void delSpace(char *str) {
int i = 0, j = 0;
while(str[i] != '\0') {
if(str[i] != ' ') {
str[j] = str[i];
j++;
}
i++;
}
str[j] = '\0';
}
int main() {
char str[100];
printf("请输入一个字符串:");
gets(str);
delSpace(str);
printf("删除空格后的字符串为:%s\n", str);
return 0;
}
```
这个函数的实现很简单,它的参数是一个指向字符串的指针。在函数内部,我们遍历这个字符串中的每一个字符,如果这个字符不是空格,就将它复制到一个新的字符串中,否则就跳过不复制。最后,将新的字符串的结尾标志赋值为'\0',表示字符串的结束。在主函数中,我们输入一个字符串,调用函数删除空格,最后输出结果。需要注意的是,我们使用了gets函数来输入字符串,因为它可以读入包含空格的字符串。
相关问题
请用C语言编写一个函数,函数的功能是删除字符串中的所有空格。 例如, 主函数中输入"asd af aa z67", 则输出为 "asdafaaz67"。
好的,这是一个简单的函数实现:
```c
void remove_spaces(char *str) {
char *p = str;
while (*p != '\0') {
if (*p != ' ') {
*str++ = *p;
}
p++;
}
*str = '\0';
}
```
函数接收一个指向字符串的指针,然后遍历整个字符串,如果当前字符不是空格,则将其复制到新的字符串中,最后在新字符串的结尾添加一个空字符,表示字符串的结束。可以这样调用这个函数:
```c
int main() {
char str[] = "asd af aa z67";
remove_spaces(str);
printf("%s\n", str); // 输出 "asdafaaz67"
return 0;
}
```
22、请编写一个函数,函数的功能是删除字符串中的所有空格。 例如, 主函数中输入"asd af aa z67", 则输出为 "asdafaaz67"。使用c语言
下面是一种简单的实现方式:
```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` 函数将其替换为空字符。