私は variable: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 に答える