C语言写一个名为“delSpace”的函数,它的功能是接收一个字符串,将这个字符串首尾的空格删除
时间: 2023-08-31 13:34:47 浏览: 376
C语言实现去除字符串中空格的简单实例
### 回答1:
```c
#include <stdio.h>
#include <string.h>
void delSpace(char *s) {
int i, j;
int len = strlen(s);
for (i = 0; i < len; i++) {
if (s[i] != ' ') {
break;
}
}
for (j = len - 1; j >= 0; j--) {
if (s[j] != ' ') {
break;
}
}
int k = 0;
for (int m = i; m <= j; m++) {
s[k++] = s[m];
}
s[k] = '\0';
}
```
该函数首先使用了两个循环来查找字符串首尾的空格位置。然后使用一个循环将字符串中除首尾空格外的部分复制到新的字符串上,并在末尾添加结束符。这样就能删除字符串首尾的空格了。
### 回答2:
下面是一个使用C语言编写的名为"delSpace"的函数,其功能是接收一个字符串,将这个字符串首尾的空格删除。
```c
#include <stdio.h>
#include <string.h>
void delSpace(char *str) {
int i, j;
int len = strlen(str);
// 删除字符串开头的空格
for (i = 0; i < len; i++) {
if(str[i] != ' ') {
break;
}
}
// 移动字符串中的字符至开头
for (j = 0; j < len - i + 1; j++) {
str[j] = str[i + j];
}
len = strlen(str);
// 删除字符串末尾的空格
for (i = len - 1; i >= 0; i--) {
if(str[i] != ' ') {
break;
}
str[i] = '\0';
}
}
int main() {
char str[100] = " Hello, World! ";
delSpace(str);
printf("Result: {%s}\n", str);
return 0;
}
```
在上述代码中,我们首先获取字符串长度,然后使用两个循环,一个从前往后遍历,找到第一个非空格字符的位置;另一个从后往前遍历,找到最后一个字符的位置后将之后的位置都置为字符串结束符'\0',从而删除字符串末尾的空格。最后,我们打印删除空格后的字符串。运行上述代码将输出`Result: {Hello, World!}`。
### 回答3:
下面是一个用C语言实现的名为"delSpace"的函数,它可以删除字符串首尾的空格:
```c
#include <stdio.h>
#include <string.h>
void delSpace(char *str) {
int len = strlen(str);
int i, j;
// 删除尾部空格
i = len - 1;
while (i >= 0 && str[i] == ' ') {
str[i] = '\0';
i--;
}
// 删除首部空格
j = 0;
while (str[j] != '\0' && str[j] == ' ') {
j++;
}
// 移动非空字符到字符串的开始位置
if (j > 0) {
strcpy(str, &str[j]);
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
// 删除首尾空格
delSpace(str);
printf("删除首尾空格后的字符串为:%s\n", str);
return 0;
}
```
该函数首先通过`strlen()`函数获取字符串的长度,然后从字符串的末尾开始遍历,直到遇到非空格字符为止,将末尾空格替换为字符串终止字符`\0`。
接着,函数从字符串的开始位置开始遍历,直到遇到第一个非空格字符为止,记录下标`j`。然后将非空格字符移到字符串的开始位置。
最后,在`main()`函数中,用户输入一个字符串,并调用`delSpace()`函数来删除首尾空格,然后打印删除空格后的字符串。
阅读全文