C++ 函数转换为 C# 函数
Posted
技术标签:
【中文标题】C++ 函数转换为 C# 函数【英文标题】:C++ function converted to C# function 【发布时间】:2018-09-30 18:43:44 【问题描述】:我有一个想要转换成 C# 的 C++ 函数。
// replace all occurences of a string with another string
void replace_all(string& s, const string& from, const string& to)
if(!from.empty())
for(size_t pos = 0; (pos = s.find(from, pos) + 1); pos += to.size())
s.replace(--pos, from.size(), to);
如注释中所述,它将给定字符串中出现的所有字符串替换为另一个字符串。
由于我使用了一些 C++ 函数来替换和查找字符串,因此我需要帮助将该函数转换为在 C# 中执行相同操作的函数。
我知道正则表达式并且我已经阅读了一些主题,但无法理解它。
【问题讨论】:
String.Replace
怎么样?此方法可用于替换给定字符串中出现的字符串。
这对您有帮助吗:***.com/questions/7265315/…
【参考方案1】:
如果这是一个处理小字符串的函数,你可以这样做:
const string s = "Write code in .Net.";
Console.WriteLine(s);
// We must assign the result to a variable.
// ... Every instance is replaced.
string v = s.Replace("Net", "Basket");
Console.WriteLine(v);
如果您想像在 C++ 中一样处理相同的字符串,请使用 StringBuilder
:
const string s = "This is an example.";
// Create new StringBuilder from string.
StringBuilder b = new StringBuilder(s);
Console.WriteLine(b);
// Replace the first word.
// ... The result doesn't need assignment.
b.Replace("This", "Here");
Console.WriteLine(b);
【讨论】:
以上是关于C++ 函数转换为 C# 函数的主要内容,如果未能解决你的问题,请参考以下文章
将包含结构的 c++ 函数传递给 C#,并使用 Marshal.PtrToStructure 将其转换为 c# 函数
如何将 C++ sscanf_s() 函数转换为 C# [关闭]