c语言将字符串中的空格去掉
时间: 2023-10-12 14:04:43 浏览: 214
可以使用 C 标准库中的 `isspace` 函数判断一个字符是否为空格,然后使用两个指针分别指向原字符串和新字符串,跳过原字符串中的空格,将非空格字符复制到新字符串中。具体实现如下:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void remove_spaces(char *str) {
char *p1 = str, *p2 = str;
do {
while (isspace(*p1)) // 跳过空格
p1++;
} while (*p2++ = *p1++); // 复制非空格字符
}
int main() {
char str[] = " hello world ";
printf("Before: \"%s\"\n", str);
remove_spaces(str);
printf("After: \"%s\"\n", str);
return 0;
}
```
输出结果为:
```
Before: " hello world "
After: "hello world"
```
在上面的代码中,`p1` 和 `p2` 分别指向原字符串和新字符串,`isspace` 函数用于判断一个字符是否为空格。`while (isspace(*p1)) p1++;` 用于跳过原字符串中的空格,`*p2++ = *p1++;` 用于将非空格字符复制到新字符串中。最后,将新字符串复制回原字符串即可。
需要注意的是,上面的代码只能去掉字符串开头和结尾的空格,如果要去掉字符串中间的空格,可以将 `isspace` 函数的判断条件改成 `*p1 == ' '`,即只判断是否为空格字符。
阅读全文