c语言去掉字符串后的\r\n
时间: 2024-01-05 15:02:16
浏览: 229
以下是C[语言](https://geek.csdn.net/educolumn/05c8de7581a582e6d46821757663ed30?spm=1055.2569.3001.10083)去掉[字符串](https://geek.csdn.net/educolumn/ba94496e6cfa8630df5d047358ad9719?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)后的\r\n的[代码](https://geek.csdn.net/educolumn/1572ef9b473b4e00f6b2bf6d428b7c27?spm=1055.2569.3001.10083)实现:
#include <stdio.h>
#include <[string](https://geek.csdn.net/edu/8802d631b97a4a6af1f4d0bbf8527465?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083).h>
char *trim(char *str)
char *p = str;
int len = strlen(p);
while (isspace(p[len - 1])) p[--len] = 0;
while (*p && isspace(*p)) ++p, --len;
mem[move](https://geek.csdn.net/educolumn/1017fe3bbe75a8f0c3f4fe48f3af73ee?spm=1055.2569.3001.10083)(str, p, len + 1);
return str;
int main()
char str[] = "hello world\r\n";
printf("Before trim: %s", str);
trim(str);
printf("After trim: %s", str);
return 0;
运行结果为:
Before trim: hello world
After trim: hello world
相关问题
C语言如何去掉字符串中的换行符和回车符
在 C 语言中,可以使用字符串处理函数 `strcspn`、`strchr` 和 `strcpy` 来去掉字符串中的换行符和回车符。
具体步骤如下:
1. 使用 `strcspn` 函数找到字符串中第一个换行符或回车符的位置,它返回的是第一个匹配字符的位置。
2. 如果找到了换行符或回车符,则使用 `strcpy` 函数将该位置之后的字符全部复制到该位置,覆盖换行符或回车符。
3. 继续使用 `strcspn` 函数寻找下一个换行符或回车符的位置,直到字符串结束。
示例代码如下:
#include <stdio.h>
#include <string.h>
void remove_newline(char str[]) {
char *pos;
while ((pos = strchr(str, '\n')) != NULL || (pos = strchr(str, '\r')) != NULL) {
strcpy(pos, pos+1);
int main() {
char str[100] = "Hello, world!\nThis is a test.\r\n";
printf("Before: %s", str);
remove_newline(str);
printf("After: %s", str);
return 0;
```