我在这里请求您帮助我正在处理的代码。
我正在将工具从C ++转换为C#。
我差不多完成了一切,但是......
在C ++的C ++中有代码以及该工具如何使用它:
struct Line
{
uint16_t Magic;
std::vector<std::string> Params;
}
这是结构,工具在交换机中使用如下:
case MAGIC_FUNCTION_BEGIN:
{
pLine -> Params[0][8] = ' ';
Output << pLine -> Params[0];
pLine -> Params.erase(pLine->Params.begin());
Output << GenParams(pLine->Params) << '\n';
break;
}
所以,现在,问题是:
如何使用pLine - &gt; Params [0] [8]如果它是一个简单的字符串向量?
谢谢!
非常感谢您的回答。
我在C#中通过将其设置为:
来解决char[] text = pLine.param[0].ToCharArray();
text[8] = ' ';
pLine.param[0] = text.ToString();
现在我要问一些关于这段代码的事情......
什么意思
pLine -> Params.erase(pLine->Params.begin());
如何转换为C#,比如erase和begin?
谢谢:)
答案 0 :(得分:1)
std::string
有一个operator[]
用于访问各个元素。
pLine->Params[0][8]
表示“访问pLine
中第一个参数的第9个字符”。在这种情况下,它设置为空格字符“”。
答案 1 :(得分:0)
表达式Params[0]
的类型是对std :: string类型的对象的引用。简而言之,Params[0]
是std::string
类型的对象,并应用第二个下标运算符Params[0][8]
,您将获得位置8的字符。
您可以更清楚地分割语句
pLine -> Params[0][8] = ' ';
分为两个陈述
std::string &s = pLine -> Params[0];
s[8] = ' ';
实际上,您有两个容器,其中一个容器放在另一个容器中。