ネイティブドライバーの呼び出しから返されたC#文字列 "RIP-1234-STOP \ 0 \ 0 \ 0 \ b \ 0 \ 0 \ 0 ??? | B?Mp?\ 0 \ 0\0"があります。
最初のヌルターミネータ'\0\以降のすべての文字をトリミングするにはどうすればよいですか。この場合、「RIP-1234-STOP」が欲しいだけです。
ありがとう。
ネイティブドライバーの呼び出しから返されたC#文字列 "RIP-1234-STOP \ 0 \ 0 \ 0 \ b \ 0 \ 0 \ 0 ??? | B?Mp?\ 0 \ 0\0"があります。
最初のヌルターミネータ'\0\以降のすべての文字をトリミングするにはどうすればよいですか。この場合、「RIP-1234-STOP」が欲しいだけです。
ありがとう。
これがトリックを行うべき方法です
string TrimFromZero(string input)
{
int index= input.IndexOf('\0');
if(index < 0)
return input;
return input.Substring(0,index);
}
これを試して:
var input = "RIP-1234-STOP\0\0\0\b\0\0\0???|B?Mp?\0\0\0";
var firstNull = input.IndexOf('\0');
var output = input.Substring(0, firstNull);
または単に:
var output = input.Substring(0, input.IndexOf('\0'));
これも機能します:
var input = "RIP-1234-STOP\0\0\0\b\0\0\0???|B?Mp?\0\0\0";
var split = input.Split('\0');
var output = split[0];
Assert.AreEqual("RIP-1234-STOP", output);