当前位置: 首页 > 编程语言 > C#

如何从C#字符串中获取以null结尾的字符串?Share

时间:2023-04-10 20:36:16 C#

如何从C#字符串中获取以null结尾的字符串?如果字符串以null结尾,我假设您正在实施某种二进制协议。你在使用BinaryWriter吗?默认的BinaryWriter将字符串写入为长度前缀。您可以更改该行为:classMyBinaryWriter:BinaryWriter{privateEncoding_encoding=Encoding.Default;publicoverridevoidWrite(stringvalue){byte[]buffer=_encoding.GetBytes(value);写入(缓冲区);写((字节)0);然后你可以这样写字符串:您可能需要根据需要调整_encoding位。您当然可以根据您对可能需要传输的其他数据类型的特定需求扩展此类,从而使您的实际协议实现保持良好和干净。您可能还需要自己的(非常相似的)BinaryReader。我认为聪明的方法就是简单地这样做。stringstr="一个示例字符串"+char.MinValue;//添加空终止符。然后将其转换为字节发送到服务器。byte[]buffer=ASCIIEncoding.ASCII.GetBytes(str);当然,您使用的编码取决于服务器的期望。该字符串以null结尾。空字符总是跟在内存中的字符串之后,尽管字符串本身不包含空字符。但是,.NET中的字符串是unicode,因此它们在内存中存储为UTF-16/UCS-2,服务器可能需要不同的编码,通常是8位编码。然后你必须将字符串编码为字节数组并在末尾放置一个零字节:byte[]data=Encoding.Default.GetBytes(theString);byte[]zdata=newbyte[data.Length+1];数据.CopyTo(zdata,0);(创建时,zdata数组全部用零填充,因此您实际上不必将额外字节设置为零。)您将一个空字符添加到字符串的末尾。.NET字符串可以包含空字符。以上就是C#学习教程:Howtogetanull-terminatedstringfromaC#string?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: