sv-字符串

1.字符串是什么?

	字符串(string)是SystemVerilog中的一种文本数据类型,用于表示字符序列。

2.字符串的基本语法

string variable_name = "value";
例如:
string val = "hello";

3.字符串的常见用法

  1. 字符串的连接
string str1 = "hello";
string str2 = "world";
string str3 = {str1,""str2};
module str_tb();
  string str1 = "hello";
  string str2 = "world";
  string str3 = {str1, " ", str2};
  string str4 = {str1,"===",str2};
  
  initial begin
    $display("str3 = %s",str3);
    $display("str4 = %s",str4);
  end
  
endmodule

代码运行结果!
2. 获取字符串的长度

string str1 = "Hello";
int len = str1.len();
module str_len_tb();
  string str1 = "hello";
  int len = str1.len();
  
  initial begin
    $display("len = %d",len);    
  end
  
endmodule

在这里插入图片描述
3. 访问字符串

module str_get_tb();

  string str1 = "hello";
  string str2 = "Hello world!";
  
  initial begin
    $display("str1[0] = %s",str1[0]);
    $display("str1[1] = %s",str1[1]);
    $display("str1[4] = %s",str1[4]);
    $display("str1[6] = %s",str1[6]);//越界了,vcs默认会返回一个空字符
    end
 
  initial begin	
 	foreach(str2[c]) begin
    $display("%s",str2[c]); 
	end
end  

endmodule

在这里插入图片描述
4.字符串的运算方法

module tb();
  string str1 = "xiaoma";
  string str2 = "xiaowang";
  
  initial begin
    if(str1 == str2)
      $display("str1 = %s  is equeal to str2 = %s",str1,str2);
    else
      $display("str1 = %s  is not equeal to str2 = %s",str1,str2);
    
  end
	
  initial begin
    if(str1 > str2)
      $display("str1 = %s  is long than str2 = %s",str1,str2);
    else
      $display("str1 = %s  is shorter than to str2 = %s",str1,str2);
  end
  
  initial begin
    $display("%s",{3{str1}});
  end
  
endmodule
 

在这里插入图片描述

4.小结

ystemVerilog中的字符串(string)是一种文本类型的数据,用于表示字符序列,可以用双引号来定义。字符串支持各种文本处理操作,包括连接字符串,通过双引号可以进行拼接;获取字符串长度using .len()方法返回整型值;访问单个字符使用中括号加索引,索引从0开始;比较字符串支持等于、不等于等比较运算符;遍历字符串可以使用foreach自动迭代每个字符。字符串还提供了许多内置方法,例如find可以查找子串,substr取子串等。但是需要注意字符串访问时索引不能越界。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值