c#中字符串的矢量

本文关键字:字符串 | 更新日期: 2023-09-27 17:59:01

我在这里请求您帮助我正在处理的代码。

我正在将一个工具从C++转换为C#。

我几乎完成了所有的事情,但是。。。

Struct的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->Params[0][8]是一个简单的字符串向量,怎么可能使用它?

谢谢!


非常感谢你的回答。

我在C#中将其设置为:

char[] text = pLine.param[0].ToCharArray();
text[8] = ' ';
pLine.param[0] = text.ToString();

现在我不得不问一些关于这个代码的其他问题。。。

做意味着什么

pLine -> Params.erase(pLine->Params.begin());

如何转换为C#,比如擦除和开始?

感谢:)

c#中字符串的矢量

std::string有一个用于访问各个元素的operator[]

pLine->Params[0][8]表示"访问pLine中第一个参数的第9个字符"。在这种情况下,它被设置为一个空格字符""。

表达式Params[0]的类型引用std::string类型的对象。简而言之,std::stringParams[0][8]类型的对象,应用第二个下标运算符CCD_9,您将在位置8处获得字符。

更清楚的是,你可以拆分报表

pLine -> Params[0][8] = ' ';

分成两个语句

std::string &s = pLine -> Params[0];
s[8] = ' ';

事实上,您有两个容器,其中一个容器放在另一个容器中。