У меня есть строка 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);