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#,比如擦除和开始?
感谢:)
std::string
有一个用于访问各个元素的operator[]
。
pLine->Params[0][8]
表示"访问pLine
中第一个参数的第9个字符"。在这种情况下,它被设置为一个空格字符""。
表达式Params[0]
的类型引用std::string类型的对象。简而言之,std::string
是Params[0][8]
类型的对象,应用第二个下标运算符CCD_9,您将在位置8处获得字符。
更清楚的是,你可以拆分报表
pLine -> Params[0][8] = ' ';
分成两个语句
std::string &s = pLine -> Params[0];
s[8] = ' ';
事实上,您有两个容器,其中一个容器放在另一个容器中。