C语言编写函数,去掉一个字符串中除头部和尾部空格外的所有空格,并编写主函数进行调用测试。 输入: 占一行(注:输入的字符串长度不会超过80) 输出: 占一行
时间: 2024-02-24 17:58:32 浏览: 67
好的,以下是 C 语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
void remove_space(char *str) {
int i, j, len;
len = strlen(str);
j = 0;
for (i = 0; i < len; i++) {
if (str[i] != ' ' || (i > 0 && str[i-1] == ' ') || (i < len-1 && str[i+1] == ' ')) {
str[j] = str[i];
j++;
}
}
str[j] = '\0';
}
int main() {
char str[81];
fgets(str, 81, stdin);
remove_space(str);
printf("%s", str);
return 0;
}
```
主函数中使用 `fgets` 函数接收输入的字符串,调用 `remove_space` 函数去掉字符串中的空格,最后输出处理后的字符串。函数中使用了双指针的方法,可以在原字符串上直接进行操作,避免了额外的内存开销。
相关问题
使用C语言编写,编写函数,去掉一个字符串中除头部和尾部空格外的所有空格,并编写主函数进行调用测试。 输入: 占一行(注:输入的字符串长度不会超过80) 输出: 占一行
以下是实现该功能的代码:
```c
#include <stdio.h>
#include <string.h>
void remove_spaces(char str[]) {
int len = strlen(str);
int i, j;
for (i = 0; str[i] == ' '; i++); // skip leading spaces
for (j = len - 1; str[j] == ' '; j--); // skip trailing spaces
int k = 0;
for (; i <= j; i++) {
if (str[i] != ' ') {
str[k++] = str[i];
}
}
str[k] = '\0';
}
int main() {
char str[81];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
remove_spaces(str);
printf("String with spaces removed: %s\n", str);
return 0;
}
```
该程序首先定义了一个函数 `remove_spaces`,该函数接受一个字符串参数,并修改该字符串以去除除头部和尾部空格外的所有空格。具体地,该函数首先找到字符串中第一个非空格字符的位置,然后找到字符串中最后一个非空格字符的位置,最后遍历字符串,将非空格字符向前移动,以去除空格字符。
主函数中,首先从标准输入中读取一个字符串,然后调用 `remove_spaces` 函数,最后打印修改后的字符串。
编写函数,去掉一个字符串中除头部和尾部空格外的所有空格,并编写主函数进行调用测试。c语言
以下是一个实现该功能的示例代码:
```c
#include <stdio.h>
#include <string.h>
void remove_extra_spaces(char* str) {
int len = strlen(str);
int i, j;
int start = -1, end = -1;
// 找到第一个非空格字符的位置
for (i = 0; i < len; i++) {
if (str[i] != ' ') {
start = i;
break;
}
}
// 找到最后一个非空格字符的位置
for (i = len - 1; i >= 0; i--) {
if (str[i] != ' ') {
end = i;
break;
}
}
if (start == -1 || end == -1) {
str[0] = '\0';
return;
}
// 去掉中间的多余空格
j = start;
for (i = start; i <= end; i++) {
if (str[i] != ' ') {
str[j++] = str[i];
} else if (i > 0 && str[i-1] != ' ') {
str[j++] = ' ';
}
}
str[j] = '\0';
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin);
remove_extra_spaces(str);
printf("去掉多余空格后的字符串为:%s\n", str);
return 0;
}
```
在主函数中,我们接收用户输入一个字符串,并调用 `remove_extra_spaces` 函数去掉多余的空格,最后输出结果。
阅读全文