c语言,文本匹配的时候经常会因为空格个数的不同而匹配失败,现在要求你编写程序对输入的字符串进行处理,去掉首尾的空格。
时间: 2024-03-24 17:38:48 浏览: 94
好的,以下是一段 C 语言代码,可以实现去掉字符串首尾空格的功能:
```c
#include <stdio.h>
#include <string.h>
void trim(char *str) {
int len = strlen(str);
char *p = str;
while (*p == ' ') { // 去掉字符串开头的空格
p++;
}
memmove(str, p, strlen(p) + 1); // 将剩余字符前移
p = str + strlen(str) - 1;
while (*p == ' ') { // 去掉字符串末尾的空格
*p = '\0';
p--;
}
}
int main() {
char str[100];
printf("请输入字符串:\n");
fgets(str, 100, stdin);
trim(str);
printf("去掉首尾空格后的字符串为:%s\n", str);
return 0;
}
```
上面的代码中,我们定义了一个 `trim` 函数,该函数可以去掉字符串开头和末尾的空格。在 `main` 函数中,我们调用 `fgets` 函数输入一个字符串,并将其作为参数传递给 `trim` 函数进行处理,最后输出去掉空格后的字符串。
需要注意的是,上面的代码中用到了 `memmove` 函数,该函数可以将一个内存区域的数据移到另一个内存区域,其参数分别为目标内存地址、源内存地址和需要移动的字节数。在本例中,我们使用 `memmove` 函数将剩余字符前移,以去掉字符串开头的空格。
阅读全文