程序中定义了
CString m_strReceived;
char readbuf[512];
想把readbuf接到m_strReceived后面,readbuf中有字符'\0',用m_strReceived+=readbuf得不到正确的结果,用for循环,m_strReceived+=readbuf[i]就可以。
但如果我想用m_strReceived.Right(m_size)来截取一部分字符串,并且这部分字符串中正好有字符'\0'的话,返回的就只是到字符'\0'为止,不能得到正确的结果。大虾们有什么好的建议?谢谢。
CString m_strReceived;
char readbuf[512];
想把readbuf接到m_strReceived后面,readbuf中有字符'\0',用m_strReceived+=readbuf得不到正确的结果,用for循环,m_strReceived+=readbuf[i]就可以。
但如果我想用m_strReceived.Right(m_size)来截取一部分字符串,并且这部分字符串中正好有字符'\0'的话,返回的就只是到字符'\0'为止,不能得到正确的结果。大虾们有什么好的建议?谢谢。
m_strReceived.Right(m_size),可能结果也是正确的,只是我获取长度m_strReceived.GetLength();时,得到的是到第一个'\0'为止的长度,那么请问如何可以手动修改CString类中的字符串长度呢?
字符串结束标志为\0,所以CString遇到\0后是不可能再继续的。建议同newbiestar() ,不要用CString处理你这种情况。