C++ 如何从char*中删除换行符?

C++ 如何从char*中删除换行符?,c++,string,newline,C++,String,Newline,我有一个变量:char*tmp,我用它做了一些操作。最后,我得到了这样的东西“fffff”,但有时在fffff之前是“\n”。如何删除它?如果动态分配了tmp,请记住使用tmp释放它: if (tmp[0] == '\n') { tmp1 = &tmp[1]; } else { tmp1 = tmp; } // Use tmp1 from now on 在您的问题中,您正在谈论将此字符串传递到套接字。当传递一个char*指针到一个套接字之类的东西并复制它时,这样做的代

我有一个变量:
char*tmp
,我用它做了一些操作。最后,我得到了这样的东西
“fffff”
,但有时在fffff之前是
“\n”
。如何删除它?

如果动态分配了tmp,请记住使用
tmp
释放它:

if (tmp[0] == '\n') {
    tmp1 = &tmp[1];
}
else {
    tmp1 = tmp;
}

// Use tmp1 from now on

在您的问题中,您正在谈论将此字符串传递到套接字。当传递一个char*指针到一个套接字之类的东西并复制它时,这样做的代码非常简单

在这种情况下,您可以执行以下操作:

if (tmp[0] == '\n')
  pass_string(tmp+1); // Passes pointer to after the newline
else
  pass_string(tmp);   // Passes pointer where it is
在C中:

#包括
tmp[strcspn(tmp,“\n”)]='\0';

我认为最好的做法是首先防止它到达那里。你能给我们看看一些代码,描述了如何结束包含“代码> \n\/Cube”的字符串吗?如果是<代码> C++ >代码>,请考虑使用<代码> STD::String < /C> >而不是<代码> char */COD>搜索和替换。code>strchr,
strpbrk
用于
char*
std::string
find\u of
。随便挑。@whiteangle您总是可以通过使用构造函数将cstring转换为std::string,并通过使用std::string::c_str()将std::string转换为cstring。我在使用libXML将国际化html文件读入程序时遇到问题,c/c++实现非常快,这是非常重要的,但低级别的原语显著提高了性能。我将进行翻录。这是一个C++问题,而不是你需要什么?<代码>包含了< /代码>?@ SpLMPRISTO <代码>包含了什么意思?
if (tmp[0] == '\n')
  pass_string(tmp+1); // Passes pointer to after the newline
else
  pass_string(tmp);   // Passes pointer where it is
#include <string.h>
tmp[strcspn(tmp, "\n")] = '\0';