删除C中的换行符

Bis*_*128 4 c

我试图用来getc(character)从文件中取一个元素并用它做一些东西,但看起来它必须'\n'在一行符合之前有一个.

如何删除它,以便在复制字符时,我没有出现在任何地方的新行字符 - 从而允许我在选择时处理打印新行?

JUS*_*ION 6

.
.
.
#include <string.h>
.
. /* insert stuff here */
.
char* mystring = "THIS IS MY STRING\n"
char* deststring;
.
.
.
strncpy(deststring, mystring, strlen(mystring)-1);
.
.
.
Run Code Online (Sandbox Code Playgroud)

(作为一个补充说明,我不喜欢在这样的字符串中删除\ 0字符.当你开始做i18n并且字符宽度不固定时,它不能很好地工作.例如,UTF-8可以每个"字符"使用1到4个字节的任何地方.)


Nit*_*kar 5

要用空格替换所有新行字符,请使用:

char *pch = strstr(myStr, "\n");
while(pch != NULL)
{
    strncpy(pch, " ", 1);
    pch = strstr(myStr, "\n");
}
Run Code Online (Sandbox Code Playgroud)

要删除字符串中第一次出现的换行符,请使用:

char *pch = strstr(myStr, "\n");
if(pch != NULL)
  strncpy(pch, "\0", 1);
Run Code Online (Sandbox Code Playgroud)


Gab*_*bák 3

嗯,使用 getc 填充缓冲区并删除换行符和回车符不会有帮助吗?