0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于字符串数据类型的示例

芯片验证工程师 来源:芯片验证工程师 作者:验证哥布 2022-10-17 14:38 次阅读

字符串数据类型是一个有序的字符集合。

字符串变量的长度是集合中的字符数。

字符串类型的变量是动态的,因为它们的长度在仿真过程中可能会变化。

字符串中的单个字符变量的类型为byte

Syntax:

string variable_name [= initial_value];

如果在声明中未指定初始值,则将变量初始化为" ",一个空字符串。空字符串的长度为零。下面是一个字符串数据类型的示例:

module datatype1;
 string s1 = "hello";
 string s2 = "hello world";
 string s3 = "helloworld"; //  is ignored
 string s4, s5, s6;
 initial
 begin
 s4 = "later";
 s5 = ""; //empty string
 s6 = {"hi", s5}; //concatenation
 #10;
 $display ("s1=%s s2=%s s3=%s s4=%s s5=%s s6=%s", s1, s2, 
s3, s4, s5, s6);
 #100 $fnish;
 end 
 endmodule

在本例中,我们声明了6个字符串,从s1到s6。s1、s2和s3分别进行了初始化。其中字符串s3中的转义字符()被转义为空字符。

然后在“initial”语句块中,将s4赋值为字符串“later”,将s5赋值为空字符串,并连接s5与" hi ",赋值给字符串s6。下面是仿真log:

ncsim> run
s1=hello s2=hello world s3=helloworld s4=later s5= s6=hi

String Operators

字符串数据类型还提供了处理字符串的操作符,如下表所示:

6d915bc8-4c42-11ed-a3b6-dac502259ad0.png

module datatype1; 
 string s2 = "hello world"; 
 string s3 = "helloworld"; 
 string s4, s5;
 string s6 = "compare"; 
 string s7 = "compare"; 
 string s8;
 integer s2len, s3len, s2c;
 initial begin
 #10; $display ("s2=%s s3=%s",s2,s3);
 #100 $fnish;
 end
 initial begin
 #15;
 s2len = s2.len( ); $display("String Length s2 = 
%0d",s2len); 
 s3len = s3.len( ); $display("String Length s3 = 
%0d",s3len);
 if (s2 == s3) $display("s2 = s3"); else $display("s2 
!= s3");
 if (s6 == s7) $display("s6 = s7"); else $display("s6 
!= s7");
 s4 = s2.substr(1,6);
 $display("s4 = %s",s4);
 s5 = "later ";
 s8 = {3{s5}};
 $display("s8 = %s",s8);
 S2c = s2[0];
 $display("s2c = %s",s2c);
 end 
 endmodule


在上面的例子中,声明了字符串s2到s8并初始化为各种字符串。

将字符串长度(.len())赋值给整数类型s2len和s3len。

比较字符串s2和s3以及字符串s6和
s7。

提取s2的部分字符串并将其赋值给s4。

复制s5三次,赋值给s8。

下面是仿真的log:

s2=hello world s3=helloworld
String Length s2 = 11
String Length s3 = 10
s2 != s3
s6 = s7
s4 = ello w
s8 = later later later
s2c = h
$fnish at simulation time 110
 V C S S i m u l a t i o n R e p o r t

String Methods

还有几种方法可用于处理字符串,如下表所示:

6e725f56-4c42-11ed-a3b6-dac502259ad0.png

module sMethods;
 string s1 = "hello";
 string s2 = "hello world";
 string s4;
 string s5 = "GOODBYE";

 byte x;
 integer s2len, s3len, i1, i2;
 initial
 begin
 #15;
 s2len = s2.len( );
 $display("String Length s2 = %0d",s2len);
 s1.putc(0,"C"); //replace 0'th character with 'C'
 $display("String s1 = %s",s1);
 x = s1.getc(0); //get 0'th character of string s1.
 $display("0'th character of string 'Cello' = %s",x);
 s4 = s2.toupper( ); //convert string 's2' to upper case
 $display("Upper Case of 'hello world' = %s",s4);
 s4 = s5.tolower ( );
 $display("Lower case of 'GOODBYE' = %s",s4);

 end
 endmodule

以及仿真log:

String Length s2 = 11
String s1 = Cello
0'th character of string 'Cello' = C
Upper Case of 'hello world' = HELLO WORLD
Lower case of 'GOODBYE' = goodbye
 V C S S i m u l a t i o n R e p o r t

在上面的例子中,

声明一些字符串变量。在“initial”语句块中,我们首先得到字符串(s2 = " hello world ";)的长度11。

然后使用" putc "方法给字符串" s1 "的第0个字符加上字符" C ":

s1.putc(0,“C”);

由于s1字符串是“hello”,它现在变成“Cello”。然后,得到字符串s1的第0个字符(现在是“Cello”):

x = s1.getc (0);

我们使用.toupper方法将" s2 "字符串(s2 = " hello world ")转换为全大写,并将结果存储在字符串" s4 "中:

s4 = s2.toupper ();

将" s5 "字符串(s5 = " GOODBYE ")转换为全小写(.tolower方法)

s4 = s5.tolower ( );

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    28

    文章

    1340

    浏览量

    109904
  • System
    +关注

    关注

    0

    文章

    165

    浏览量

    36818
  • 字符串
    +关注

    关注

    1

    文章

    567

    浏览量

    20455
  • 数据类型
    +关注

    关注

    0

    文章

    236

    浏览量

    13589

原文标题:SystemVerilog中的字符串数据类型

文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Redis数据类型介绍

    支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(有序集合)。 string(字符串字符串
    的头像 发表于 10-09 10:53 742次阅读
    Redis<b class='flag-5'>数据类型</b>介绍

    鸿蒙原生应用元服务开发-仓颉基础数据类型字符串类型

    字符串类型使用 String 表示,用于表达文本数据,由一 Unicode 字符组合而成。 字符串
    发表于 09-18 10:43

    字符串的表示

    字符串的表示  随着计算机在文字处理与信息管理中的广泛应用, 字符串已成为最常用的数据类型之一, 许多计算机中都提供字符串操作功能, 一些计算机还给出读写字
    发表于 10-13 17:11 3046次阅读
    <b class='flag-5'>字符串</b>的表示

    c#数据类型转换-数值字符串和数值之间的转换

    c#将数值转换成字符串非常简单,因为每一个类都有一个 void ToString() 方法。所有数值型的 void ToString()方法都能将数据转换为数值字符串。如 123.ToSting() 就将得到
    发表于 11-14 18:06 3566次阅读

    python 的数据类型(三):字符串

    字符串还支持切片(slice)操作,取出给定两个下标之间的字符序列(包括开始下标的字符,但不包括结束下标的字符。用数学区间的[a:b)来描述是不是更清楚点呢)。
    的头像 发表于 12-24 15:41 984次阅读

    2.2 python字符串类型

    2.2 python字符串类型 1. 如何定义字符串字符串是Python中最常用的数据类型之一。 使用单引号或双引号来创建
    的头像 发表于 02-17 17:08 1383次阅读

    C语言_字符串与指针的练习

    这篇文章涉及到字符串与指针知识点的相关练习。浮点数与字符串互转、字符串拷贝、字符串比较、指针交换变量、指针优先级、数据类型强制转换、内存拷贝
    的头像 发表于 08-14 09:51 1440次阅读

    Python字符串数据类型与拼接

    只要是被引号【单/双/三引号】包裹起来的内容就叫字符串。 这个内容可以是中文、英文、数字、图例等,只要在引号里就叫字符串
    的头像 发表于 08-16 17:21 1477次阅读
    Python<b class='flag-5'>字符串</b>的<b class='flag-5'>数据类型</b>与拼接

    Python-字符串

    字符串就是 一字符 ,是编程语言中表示文本的数据类型,在Python中使用一对双引号 "" 或者一对单引号来定义.
    的头像 发表于 02-16 15:05 1072次阅读
    Python-<b class='flag-5'>字符串</b>

    什么是字符串

    Python 中有很多数据类型字符串是其中的一种
    的头像 发表于 02-23 14:55 5561次阅读
    什么是<b class='flag-5'>字符串</b>

    字符串的相关知识

    TCL 中的数据类型只有一种:字符串。这些字符串可以是字母、数字、布尔值、标点符号等特殊字符的组合。在某些特殊命令的作用下,字符串可以向其他
    的头像 发表于 03-29 11:41 1049次阅读

    redis的五种数据类型

    Redis是一种高性能的内存数据库,常用于缓存、任务队列、分布式锁等场景。它提供了多种数据类型来满足各种不同的需求,包括字符串(string)、哈希(hash)、列表(list)、集合(set
    的头像 发表于 11-16 11:06 577次阅读

    labview扫描字符串怎么用

    介绍如何在 LabVIEW 中使用扫描字符串以及相关的技巧和注意事项。 字符串是 LabVIEW 中的一种基本数据类型,表示一系列字符的序列。扫描
    的头像 发表于 12-29 10:12 1745次阅读

    labview字符串的四种表示各有什么特点

    。在LabVIEW中,字符串是一种基本的数据类型,用于表示文本信息。字符串在LabVIEW中有多种表示方式,每种方式都有其特定的应用场景和特点。以下是对LabVIEW中四种字符串表示方
    的头像 发表于 09-04 15:40 312次阅读

    labview字符串数组转化为数值数组

    在LabVIEW中,将字符串数组转换为数值数组是一项常见的任务,尤其是在处理数据采集、信号处理或用户输入时。 1. 理解LabVIEW的数据类型 在开始之前,了解LabVIEW中的数据类型
    的头像 发表于 09-04 17:47 1325次阅读