Как передать строку между c ++ и c # с нулевыми символами внутри?

В C ++ у меня есть несколько строк, например
string str = "a\0b\0c";

И мне нужно передать эту строку в C # без потери данных после «\ 0», а из c # перейти в C ++ также без потери данных.

Вы можете мне помочь?

3

Решение

Хорошо, я нашел ответ на свой вопрос. Возможно, это не очень хорошее решение, но оно решает мою проблему.
C ++:

string EncodeConfigString(string OptionsString)
{
string tempOptions = " ";
if (OptionsString.size() != 0)
{
vector<int> arrayOfIntCodes;

for (int i = 0; i < OptionsString.size(); i++)
{
int codeOfChar = OptionsString[i];
tempOptions += std::to_string(codeOfChar) + "&";
}
}

return tempOptions;
}

C #:

  private string DecodeConfig(StringBuilder OptionsBuilder)
{
string result = String.Empty;
string Options = OptionsBuilder.ToString();

if (!string.IsNullOrEmpty(Options) && Options.Contains(Consts.AMPERSAND))
{
string[] entries = Options.Split(Consts.AMPERSAND);

StringBuilder chars = new StringBuilder(Consts.OUTPUT_MAX_SIZE);

for (int i = 0; i < entries.Length; i++)
{
int resultParse;

if (int.TryParse(entries[i], out resultParse))
{
chars.Append((char)resultParse);
}
}

result = chars.ToString();
}

return result;

}
0

Другие решения


По вопросам рекламы [email protected]