System verilog 什么是substr?在systemverilog中

System verilog 什么是substr?在systemverilog中,system-verilog,System Verilog,我想知道什么是substr函数?上述子字符串的用途是什么:此方法提取字符串。它需要子字符串开始索引的位置,长度。然后返回一个包含该范围内字符的新字符串 C程序子串 使用制度 Int fd; String str; fd = $fopen(path, "r"); Status= $fgets(str, fd); cm = str.substr(0,1); cm1= str.substr(0,0); 输出 Substring:Catsubstr函数返回一个新字符串,该字符串是由str的位置i到j

我想知道什么是substr函数?上述子字符串的用途是什么:此方法提取字符串。它需要子字符串开始索引的位置,长度。然后返回一个包含该范围内字符的新字符串

C程序子串

使用制度

Int fd;
String str;

fd = $fopen(path, "r");
Status= $fgets(str, fd);
cm = str.substr(0,1);
cm1= str.substr(0,0);
输出

Substring:Cat

substr函数返回一个新字符串,该字符串是由str的位置i到j处的字符组成的子字符串。与此处发布的示例非常类似

class Program
{
    static void Main()
    {
    string input = "ManCatDog";

    // Get Middle three characters.
    string subString = input.Substring(3, 6);
    Console.WriteLine("SubString: {0}", subString);
    }
}
输出将是:

module test;
  string str = "Test";
  initial
    $display(str.substr(0,1));
endmodule
正如您在第6.16.8节中所看到的,.

substr函数,顾名思义,在systemverilog中从较大的字符串中减去或获取一个块

例如:

>> Te
。。。。
输出:-这将给出stri1=y_lag

@bunch有趣的是,这个表达式str.substr0,0的含义是什么?它的价值是什么?如果它的值是空字符串,为什么要使用这样的复合表达式?长度是6,所以输出是catdog。这个问题是关于SystemVerilog,而不是c。SystemVerilog的参数不同于您的答案开始索引、结束索引而不是开始索引、长度c。
stri0 = "my_lago";
stri1 = stri0.substr(1,5);
$display("This will give stri1 = %s" , stri1);