RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于字符串?dāng)?shù)據(jù)類型的示例

芯片驗(yàn)證工程師 ? 來(lái)源:芯片驗(yàn)證工程師 ? 作者:驗(yàn)證哥布 ? 2022-10-17 14:38 ? 次閱讀

字符串?dāng)?shù)據(jù)類型是一個(gè)有序的字符集合。

字符串變量的長(zhǎng)度是集合中的字符數(shù)。

字符串類型的變量是動(dòng)態(tài)的,因?yàn)樗鼈兊拈L(zhǎng)度在仿真過(guò)程中可能會(huì)變化。

字符串中的單個(gè)字符變量的類型為byte。

Syntax:

string variable_name [= initial_value];

如果在聲明中未指定初始值,則將變量初始化為" ",一個(gè)空字符串??兆址拈L(zhǎng)度為零。下面是一個(gè)字符串?dāng)?shù)據(jù)類型的示例:

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個(gè)字符串,從s1到s6。s1、s2和s3分別進(jìn)行了初始化。其中字符串s3中的轉(zhuǎn)義字符()被轉(zhuǎn)義為空字符。

然后在“initial”語(yǔ)句塊中,將s4賦值為字符串“l(fā)ater”,將s5賦值為空字符串,并連接s5與" hi ",賦值給字符串s6。下面是仿真log:

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

String Operators

字符串?dāng)?shù)據(jù)類型還提供了處理字符串的操作符,如下表所示:

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并初始化為各種字符串。

將字符串長(zhǎng)度(.len())賦值給整數(shù)類型s2len和s3len。

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

提取s2的部分字符串并將其賦值給s4。

復(fù)制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”語(yǔ)句塊中,我們首先得到字符串(s2 = " hello world ";)的長(zhǎng)度11。

然后使用" putc "方法給字符串" s1 "的第0個(gè)字符加上字符" C ":

s1.putc(0,“C”);

由于s1字符串是“hello”,它現(xiàn)在變成“Cello”。然后,得到字符串s1的第0個(gè)字符(現(xiàn)在是“Cello”):

x = s1.getc (0);

我們使用.toupper方法將" s2 "字符串(s2 = " hello world ")轉(zhuǎn)換為全大寫,并將結(jié)果存儲(chǔ)在字符串" s4 "中:

s4 = s2.toupper ();

將" s5 "字符串(s5 = " GOODBYE ")轉(zhuǎn)換為全小寫(.tolower方法)

s4 = s5.tolower ( );

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110074
  • System
    +關(guān)注

    關(guān)注

    0

    文章

    165

    瀏覽量

    36928
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    578

    瀏覽量

    20506
  • 數(shù)據(jù)類型
    +關(guān)注

    關(guān)注

    0

    文章

    236

    瀏覽量

    13618

原文標(biāo)題:SystemVerilog中的字符串?dāng)?shù)據(jù)類型

文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Redis數(shù)據(jù)類型介紹

    支持五種數(shù)據(jù)類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(有序集合)。 string(字符串字符串
    的頭像 發(fā)表于 10-09 10:53 ?782次閱讀
    Redis<b class='flag-5'>數(shù)據(jù)類型</b>介紹

    鴻蒙原生應(yīng)用元服務(wù)開(kāi)發(fā)-倉(cāng)頡基礎(chǔ)數(shù)據(jù)類型字符串類型

    字符串類型使用 String 表示,用于表達(dá)文本數(shù)據(jù),由一 Unicode 字符組合而成。 字符串
    發(fā)表于 09-18 10:43

    字符串的表示

    字符串的表示  隨著計(jì)算機(jī)在文字處理與信息管理中的廣泛應(yīng)用, 字符串已成為最常用的數(shù)據(jù)類型之一, 許多計(jì)算機(jī)中都提供字符串操作功能, 一些計(jì)算機(jī)還給出讀寫字
    發(fā)表于 10-13 17:11 ?3064次閱讀
    <b class='flag-5'>字符串</b>的表示

    c#數(shù)據(jù)類型轉(zhuǎn)換-數(shù)值字符串和數(shù)值之間的轉(zhuǎn)換

    c#將數(shù)值轉(zhuǎn)換成字符串非常簡(jiǎn)單,因?yàn)槊恳粋€(gè)類都有一個(gè) void ToString() 方法。所有數(shù)值型的 void ToString()方法都能將數(shù)據(jù)轉(zhuǎn)換為數(shù)值字符串。如 123.ToSting() 就將得到
    發(fā)表于 11-14 18:06 ?3592次閱讀

    python 的數(shù)據(jù)類型(三):字符串

    字符串還支持切片(slice)操作,取出給定兩個(gè)下標(biāo)之間的字符序列(包括開(kāi)始下標(biāo)的字符,但不包括結(jié)束下標(biāo)的字符。用數(shù)學(xué)區(qū)間的[a:b)來(lái)描述是不是更清楚點(diǎn)呢)。
    的頭像 發(fā)表于 12-24 15:41 ?1013次閱讀

    2.2 python字符串類型

    2.2 python字符串類型 1. 如何定義字符串? 字符串是Python中最常用的數(shù)據(jù)類型之一。 使用單引號(hào)或雙引號(hào)來(lái)創(chuàng)建
    的頭像 發(fā)表于 02-17 17:08 ?1422次閱讀

    C語(yǔ)言_字符串與指針的練習(xí)

    這篇文章涉及到字符串與指針知識(shí)點(diǎn)的相關(guān)練習(xí)。浮點(diǎn)數(shù)與字符串互轉(zhuǎn)、字符串拷貝、字符串比較、指針交換變量、指針優(yōu)先級(jí)、數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換、內(nèi)存拷貝
    的頭像 發(fā)表于 08-14 09:51 ?1484次閱讀

    Python字符串數(shù)據(jù)類型與拼接

    只要是被引號(hào)【單/雙/三引號(hào)】包裹起來(lái)的內(nèi)容就叫字符串。 這個(gè)內(nèi)容可以是中文、英文、數(shù)字、圖例等,只要在引號(hào)里就叫字符串。
    的頭像 發(fā)表于 08-16 17:21 ?1507次閱讀
    Python<b class='flag-5'>字符串</b>的<b class='flag-5'>數(shù)據(jù)類型</b>與拼接

    Python-字符串

    字符串就是 一字符 ,是編程語(yǔ)言中表示文本的數(shù)據(jù)類型,在Python中使用一對(duì)雙引號(hào) "" 或者一對(duì)單引號(hào)來(lái)定義.
    的頭像 發(fā)表于 02-16 15:05 ?1136次閱讀
    Python-<b class='flag-5'>字符串</b>

    什么是字符串

    Python 中有很多數(shù)據(jù)類型,字符串是其中的一種
    的頭像 發(fā)表于 02-23 14:55 ?6101次閱讀
    什么是<b class='flag-5'>字符串</b>

    字符串的相關(guān)知識(shí)

    TCL 中的數(shù)據(jù)類型只有一種:字符串。這些字符串可以是字母、數(shù)字、布爾值、標(biāo)點(diǎn)符號(hào)等特殊字符的組合。在某些特殊命令的作用下,字符串可以向其他
    的頭像 發(fā)表于 03-29 11:41 ?1145次閱讀

    redis的五種數(shù)據(jù)類型

    Redis是一種高性能的內(nèi)存數(shù)據(jù)庫(kù),常用于緩存、任務(wù)隊(duì)列、分布式鎖等場(chǎng)景。它提供了多種數(shù)據(jù)類型來(lái)滿足各種不同的需求,包括字符串(string)、哈希(hash)、列表(list)、集合(set
    的頭像 發(fā)表于 11-16 11:06 ?639次閱讀

    labview掃描字符串怎么用

    介紹如何在 LabVIEW 中使用掃描字符串以及相關(guān)的技巧和注意事項(xiàng)。 字符串是 LabVIEW 中的一種基本數(shù)據(jù)類型,表示一系列字符的序列。掃描
    的頭像 發(fā)表于 12-29 10:12 ?1978次閱讀

    labview字符串的四種表示各有什么特點(diǎn)

    。在LabVIEW中,字符串是一種基本的數(shù)據(jù)類型,用于表示文本信息。字符串在LabVIEW中有多種表示方式,每種方式都有其特定的應(yīng)用場(chǎng)景和特點(diǎn)。以下是對(duì)LabVIEW中四種字符串表示方
    的頭像 發(fā)表于 09-04 15:40 ?533次閱讀

    labview字符串數(shù)組轉(zhuǎn)化為數(shù)值數(shù)組

    在LabVIEW中,將字符串數(shù)組轉(zhuǎn)換為數(shù)值數(shù)組是一項(xiàng)常見(jiàn)的任務(wù),尤其是在處理數(shù)據(jù)采集、信號(hào)處理或用戶輸入時(shí)。 1. 理解LabVIEW的數(shù)據(jù)類型 在開(kāi)始之前,了解LabVIEW中的數(shù)據(jù)類型
    的頭像 發(fā)表于 09-04 17:47 ?2253次閱讀
    RM新时代网站-首页