我有一个变量:char * tmp
我用它做很少的操作。最后,我有这样的东西,"fffff"
但有时在 fffff 之前是"\n"
. 我怎样才能删除它?
问问题
9624 次
4 回答
6
char *tmp = ...;
// the erase-remove idiom for a cstring
*std::remove(tmp, tmp+strlen(tmp), '\n') = '\0'; // removes _all_ new lines.
于 2012-06-18T19:58:44.953 回答
4
在您的问题中,您正在谈论将此字符串传递给套接字。当将 char* 指针传递给将复制它的套接字之类的东西时,执行此操作的代码非常简单。
在这种情况下,您可以这样做:
if (tmp[0] == '\n')
pass_string(tmp+1); // Passes pointer to after the newline
else
pass_string(tmp); // Passes pointer where it is
于 2012-06-18T20:26:45.937 回答
2
在 C 中:
#include <string.h>
tmp[strcspn(tmp, "\n")] = '\0';
于 2012-06-19T09:15:50.690 回答
1
如果 tmp 是动态分配的,请记住使用以下命令释放它tmp
:
if (tmp[0] == '\n') {
tmp1 = &tmp[1];
}
else {
tmp1 = tmp;
}
// Use tmp1 from now on
于 2012-06-18T19:46:14.403 回答