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# [关闭]

如何将 System::^array 从 C# 函数转换为 C++ 中的等效数据类型

如何将带有 Union 的 C++ 结构转换为 C#?

在 Mono 中将 C++ 暴露给 C#:函数的无效转换?

将 Suprema Biostar C++ 代码转换为 C#