linux c 字符串去掉换行符
时间: 2024-10-18 22:19:50 浏览: 51
在 Linux C 程序中,如果你想从字符串中去掉换行符('\n'),你可以使用 `strtok` 函数配合 `isspace()` 或直接替换操作。这里提供两个简单的方法:
1. 使用 `strtok` 和 `isspace()`: 这个方法适用于字符串是由空格分隔的,包括换行符。
```c
#include <stdio.h>
#include <string.h>
void remove_newlines(char *str) {
char *token = strtok(str, "\n ");
while (token != NULL) {
strcpy(str, token);
str = strchr(str, '\0');
str++; // 跳过结束字符'\0'
token = strtok(NULL, "\n ");
}
}
int main() {
char str_with_newline[] = "Hello\nWorld!\nThis is a test.";
remove_newlines(str_with_newline);
printf("%s", str_with_newline); // 输出: HelloWorld!This is a test.
return 0;
}
```
2. 直接替换:遍历字符串,遇到 '\n' 就替换成空字符('\0')。
```c
#include <stdio.h>
#include <string.h>
void remove_newlines_strcat(char *dest, const char *src) {
for (size_t i = 0; src[i] != '\0'; ++i) {
if (src[i] != '\n') {
dest[strlen(dest)] = src[i];
}
}
dest[strlen(dest)] = '\0'; // 添加终止符
}
int main() {
char dest[50], src = "Hello\nWorld!\nThis is a test.\n";
remove_newlines_strcat(dest, src);
printf("%s", dest); // 输出: HelloWorld!This is a test.
return 0;
}
```
这两个例子中,`remove_newlines` 或 `remove_newlines_strcat` 都会移除输入字符串中的换行符。
阅读全文