c语言第1关:去掉字符串首尾空格
时间: 2023-06-22 20:18:07 浏览: 245
可以使用C语言中的库函数 `isspace()` 和 `strcpy()` 来去掉字符串首尾空格,具体实现如下:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void trim(char *s) {
char *p = s;
int len = strlen(p);
while (isspace(p[len - 1])) p[--len] = 0;
while (*p && isspace(*p)) ++p, --len;
memmove(s, p, len + 1);
}
int main() {
char s[] = " hello world ";
trim(s);
printf("%s\n", s); // 输出"hello world"
return 0;
}
```
这里的 `trim()` 函数采用了双指针的方式,先去掉字符串尾部的空格,再去掉字符串头部的空格,最后使用 `memmove()` 函数将去掉空格后的子串移动到字符串的开头。
相关问题
c语言字符串去除空格
以下是C语言实现字符串去除空格的代码:
```c
void removeSpaces(char* str) {
int i, j;
for (i = 0, j = 0; str[i] != '\0'; i++) {
if (str[i] != ' ') {
str[j++] = str[i];
}
}
str[j] = '\0';
}
```
该函数的实现方法是遍历字符串中的每个字符,如果该字符不是空格,则将其复制到新的字符串中。最后,将新字符串的末尾设置为'\0',以表示字符串的结束。
需要注意的是,该函数只能去除字符串中的空格,而不能去除其他空白字符,如制表符、换行符等。
C语言字符串去掉空格
我们可以使用指针来实现字符串去掉空格的操作。具体步骤如下:
1. 定义一个指向字符串的指针,用于遍历字符串。
2. 定义一个指向新字符串的指针,用于存储去掉空格后的字符串。
3. 遍历原始字符串,如果当前字符不是空格,则将其复制到新字符串中;否则跳过该字符。
4. 遍历结束后,在新字符串末尾添加结束符'\0'。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
void remove_space(char *str) {
char *p = str; // 原始字符串指针
char *q = str; // 新字符串指针
while (*p) {
if (*p != ' ') {
*q = *p;
q++;
}
p++;
}
*q = '\0'; // 在新字符串末尾添加结束符
}
int main() {
char str[] = " C 语言 ";
printf("原始字符串:%s\n", str);
remove_space(str);
printf("去掉空格后的字符串:%s\n", str);
return 0;
}
```
运行结果如下:
```
原始字符串: C 语言
去掉空格后的字符串:C语言
```