用C语言编写一个函数,函数的功能是删除字符串中的所有空格。 例如, 主函数中输入"asd af aa z67", 则输出为 "asdafaaz67"。
时间: 2024-03-08 16:47:36 浏览: 65
下面是一个实现该功能的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函数来输入字符串,因为它可以读入包含空格的字符串。
相关问题
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` 函数将其替换为空字符。
c语言中编写一个函数,用来删除字符串中的所有空格,要求在主函数中输入一个字符串,删除所有空格 后的字符串在主函数中输出。
以下是 C 语言中删除字符串中所有空格的函数代码:
```c
#include <stdio.h>
#include <string.h>
void removeSpaces(char *str)
{
int i, j;
for (i = 0, j = 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);
removeSpaces(str);
printf("删除空格后的字符串为:%s", str);
return 0;
}
```
输入一个字符串后,调用 `removeSpaces()` 函数删除其中的所有空格,然后在主函数中输出删除空格后的字符串。
注意:这个函数只能删除空格,不能删除其它空白字符,如制表符等。
阅读全文