欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt掃盲篇之QRegExp正則匹配類總結(jié)

 更新時間:2023年12月27日 11:58:30   作者:太陽風暴  
這篇文章主要給大家介紹了關(guān)于Qt掃盲篇之QRegExp正則匹配類總結(jié)的相關(guān)資料,QRegExp是Qt框架中的一個類,用于進行正則表達式的匹配和處理,它提供了多種模式來匹配不同的字符串,需要的朋友可以參考下

一、正則表達式概述

正則表達式或“regexp”是一種用于匹配文本中的子字符串的模式。正則表達式在字符串處理的時候發(fā)揮重要的作用,用途如下四種:

  • 驗證
    regexp可以測試子字符串是否滿足某些條件,例如是整數(shù)或不包含空格。
  • 搜索
    regexp提供了比簡單的子字符串匹配更強大的模式匹配,例如,匹配單詞 mail、letter 或 correspondence 中的一個,但不匹配單詞 email、mailman、mailer、letterbox 等。
  • 搜索和替換
    regexp可以用不同的子字符串替換所有出現(xiàn)的子字符串,例如,將所有出現(xiàn)的&替換為&除非&后面已經(jīng)跟了一個amp;
  • 字符串分割
    regexp可以用來標識字符串應該在哪里被分割,例如分割制表符分隔的字符串。

推薦看下面鏈接關(guān)于正則表達的教程,我們只需要知道在Qt里怎么調(diào)用這個 api 就行啦,這個網(wǎng)站還有在線的測試正則表達式的工具,驗證自己的正則表達正確與否

http://edu.jb51.net/regexp/regexp-tutorial.html

本文將簡要介紹regexp,描述Qt的regexp語言、一些示例以及函數(shù)文檔本身。QRegExp是基于Perl的 regexp 語言建模的。它完全支持Unicode。QRegExp還可以以一種更簡單的通配符模式使用,這種模式類似于命令shell中的功能。QRegExp使用的語法規(guī)則可以通過 setPatternSyntax() 改變。特別地,模式語法可以設(shè)置為 QRegExp::FixedString,這意味著要匹配的模式被解釋為普通字符串,即特殊字符(例如反斜杠)不會轉(zhuǎn)義。

  • 注意:在Qt 5中,新的QRegularExpression類提供了一個與Perl兼容的正則表達式實現(xiàn),建議用它來代替QRegExp

二、正則匹配介紹

正則表達式由表達式、量詞和斷言組成。 最簡單的表達式是一個字符,例如x或5。表達式也可以是方括號中包含的一組字符。[ABCD]將匹配A、B、C或D。我們可以將這個表達式寫成[A-D],而匹配任何英文大寫字母的表達式寫成[A- Z]。

量詞指定了必須匹配的表達式出現(xiàn)的次數(shù)。X{1,1}表示匹配1個且僅匹配1個; X{1,5}表示匹配一個包含至少一個X但不超過5個X的序列。

注意,一般來說,正則表達式不能用于檢查平衡的括號或標簽。例如,可以編寫一個 regexp 來匹配 html的開頭<b>和結(jié)尾</b>,如果<b>標簽沒有嵌套,但如果<b>標簽嵌套,相同的regexp將匹配一個開頭<b>標簽和錯誤的結(jié)尾。對于片段<b>bold <b>bold </b></b>,第一個<b>與第一個匹配,這是不正確的。不過,可以編寫一個regexp來正確匹配嵌套的方括號或標簽,但前提是嵌套級別是固定且已知的。如果嵌套級別不是固定的且已知的,那么就不可能寫出一個不會失敗的regexp。

假設(shè)我們想要一個 regexp 來匹配 0 到 99 之間的整數(shù)。至少需要一位數(shù)字,因此我們從表達式 [0-9]{1,1} 開始,它只匹配一位數(shù)字一次。這個 regexp 匹配 0 到 9 之間的整數(shù)。要匹配最多 99 個整數(shù),將最大出現(xiàn)次數(shù)增加為 2,因此 regexp 變?yōu)?[0-9]{1,2}。這個 regexp 滿足匹配 0 到 99 之間的整數(shù)的原始要求,但它也匹配出現(xiàn)在字符串中間的整數(shù)。

如果希望匹配的整數(shù)是整個字符串,就必須使用錨點斷言,^ (上三角父)和 $ (美元符)。當^是regexp中的第一個字符時,這意味著regexp必須從字符串的開始匹配。當 $ 是regexp的最后一個字符時,這意味著regexp必須匹配字符串的結(jié)尾。regexp變?yōu)?^ [0-9]{1,2}$。

注意,斷言,例如^和$,不匹配字符,而是匹配字符串中的位置。

如果您在其他地方看到過描述的正則表達式,它們可能與這里顯示的不同。這是因為某些字符集和量詞太常見了,以至于它們被賦予了特殊的符號來表示。

[0-9]可以用符號\d代替。只匹配一次出現(xiàn)的量詞 {1,1} 可以用表達式本身替換,即 x{1,1} 與 x 相同。因此,我們的 0 到 99 的matcher可以寫成 ^\d{1,2}$ , 它也可以寫成 ^\d\d{0,1}$ ,即從字符串的開始匹配一個數(shù)字,緊接著是0或1個數(shù)字。實際上,它可以寫成 ^\d\d?$ 的嗎? 這也是量詞{0,1}的簡寫,即出現(xiàn)0次或1次嗎?使表達式成為可選的。

^\d\d?$ 表示從字符串的開始,匹配一個數(shù)字,緊接著是 0 或 1 個數(shù)字,接著是字符串的結(jié)束。

要編寫一個匹配單詞’mail’、‘letter’或’correspondence’,但不匹配包含這些單詞的單詞,例如 ‘email’、‘mailman’、‘mailer’ 和 ‘letterbox’,請從匹配 ‘mail’ 的 regexp 開始。完整地說,regexp 是 m{1,1}a{1,1}i{1,1}l{1,1},但是因為字符表達式是由{1,1}自動量化的,所以我們可以將 regexp 簡化為 mail,即 ‘m’、‘a’、‘i’、‘l’。現(xiàn)在我們可以使用豎線 | (表示or)來包含另外兩個單詞,因此匹配這三個單詞中的任何一個的regexp就變成了 mail|letter|correspondence。匹配 ‘mail’、‘letter’或’correspondence’。

雖然這個regexp將匹配我們想要匹配的三個單詞中的一個,但它也會匹配我們不想匹配的單詞,例如’email’。為了防止regexp匹配不需要的單詞,我們必須告訴它在單詞邊界處開始和結(jié)束匹配。首先,我們將regexp括在括號中(mail|letter|correspondence)。

括號將表達式組合在一起,它們標識了我們想要捕獲的regexp部分。將表達式放在括號中允許我們在更復雜的regexp中將其作為組件使用。 它還允許我們檢查三個單詞中哪個是真正匹配的。為了強制匹配在單詞邊界開始和結(jié)束,我們將regexp包含在 \b 單詞邊界斷言中: \b(mail|letter|correspondence)\b 現(xiàn)在,regexp的意思是:匹配一個單詞邊界,然后是放在括號中的regexp,最后是單詞邊界。\b斷言匹配regexp中的位置,而不是字符。

單詞邊界是任何非單詞字符,例如空格、換行符或字符串的開頭和結(jié)尾。

如果我們想將&字符替換為HTML實體&,則匹配的regexp就是&。但這個regexp也會匹配&符號

三、表達式字符

字符含義
c字符表示自身,除非它有特殊的regexp含義。例如,c匹配字符c。
\c反斜杠后面的字符匹配字符本身,下面指定的字符除外。例如,要匹配字符串開頭的插入字符,可以寫^。
\a匹配ASCII的bell碼(BEL, 0x07)。
\f匹配ASCII表單提要(FF, 0x0C)。
\n匹配ASCII換行符(LF, 0x0A, Unix換行符)。
\r匹配ASCII回車(CR, 0x0D)。
\t匹配ASCII水平制表符(HT, 0x09)。
\v匹配ASCII垂直選項卡(VT, 0x0B)。
\xhhhh匹配十六進制數(shù)hhhh(在0x0000和0xFFFF之間)對應的Unicode字符。
\0ooo(例:\zero ooo)匹配八進制數(shù)ooo的ASCII/Latin1字符(0到0377之間)。
. (dot)匹配任意字符(包括換行符)。
\d匹配一個數(shù)字(QChar::isDigit())。
\D匹配非數(shù)字。
\s匹配空白字符(QChar::isSpace())。
\S匹配非空白字符。
\w匹配單詞字符(QChar::isLetterOrNumber()、QChar::isMark()或’_')。
\W匹配非單詞字符。
\n第n個后向引用,例如\1、\2等

注意:c++編譯器會轉(zhuǎn)換字符串中的反斜杠。要在regexp中包含\,請輸入兩次,即 \\。要匹配反斜杠字符本身,請輸入四次,即 \\\\。

四、字符集

中括號表示匹配中包含的任意字符。上面描述的字符集縮寫可以出現(xiàn)在方括號中的字符集中。除了字符集縮寫和以下兩個例外,方括號中的字符沒有特殊含義。

  • ^ :如果字符集作為第一個字符出現(xiàn)(即緊跟在左方括號之后),則插入符號對它取反。[abc]匹配’a’、‘b’或’c’,但[^abc]匹配除’a’、'b’或’c’以外的任何值。
  • - :破折號表示一個字符范圍。[W-Z]匹配’W’或’X’或’Y’或’Z’。

使用預定義的字符集縮寫比跨平臺和語言使用字符范圍具有更好的可移植性。 例如,[0-9]匹配西方字母表中的一個數(shù)字,而 \d 匹配任何字母表中的一個數(shù)字。

注意:在其他regexp文檔中,字符集通常稱為“字符類”。

五、量詞

默認情況下,一個表達式會自動被{1,1}量化,即它應該只出現(xiàn)一次。在下面的列表中,E代表表達式。表達式是一個字符,或一組字符的縮寫,或方括號中的一組字符,或括號中的表達式。

符號含義
E?匹配0或1次e。這個量詞意味著前一個表達式是可選的,因為無論是否找到前一個表達式,它都會匹配。E ?和E{0,1}一樣。例如,凹痕?匹配’dent’或’ '。
E+匹配一次或多次E。E+與E{1,}相同。例如,0+匹配0、00、000等。
E*匹配零次或多次E。它與E{0,}相同。量詞經(jīng)常在錯誤中使用,而應該使用+。例如,如果在表達式中使用\sKaTeX parse error: Undefined control sequence: \s at position 26: …符串,它將匹配每個字符串,因為\?s?*意味著匹配零個或多個空格,然后是字符串結(jié)尾。要匹配結(jié)尾至少有一個空格的字符串,正確的regexp是\s+$。
E{n}完全匹配E n次E{n}等價于重復E n次例如,x{5}表示xxxxx。它也與E{n,n}相同,例如x{5,5}。
E{n}至少匹配n次E。
E{, m}E最多匹配m次。E{,m}與E{0,m}相同。
E{n, m}E至少出現(xiàn)n次,最多出現(xiàn)m次。

如果要將量詞應用于前面的字符以外的字符,可以使用括號將字符組合在一個表達式中。例如,tag+匹配的是’t’和’a’以及至少一個’g’,而(tag)+匹配的是’tag’的至少一次出現(xiàn)。

  • 注意:量詞通常是“貪婪的”。它們總是匹配盡可能多的文本。 例如,0+匹配它找到的第一個0以及第一個0之后的所有連續(xù)的0。應用到20005,它匹配20005。量詞可以變成非貪心的,參見setMinimal()。

六、斷言

斷言對出現(xiàn)在regexp中的文本做了一些聲明,但它們不匹配任何字符。在下面的列表中,E代表任何表達式。

符號含義
^脫字符表示字符串的開始。如果你想匹配字面量^ ,就必須將其轉(zhuǎn)義為 \^ 。例如,^#include只匹配以’#include’開頭的字符串。(當插入符號是字符集的第一個字符時,它有特殊的含義,請參見“字符集”。)
$美元表示字符串的結(jié)束。例如\d\s*$將匹配以數(shù)字結(jié)尾的字符串(可選地,數(shù)字后面有空格)。如果你想匹配字面上的 $ ,就必須轉(zhuǎn)義為\$ 。
\b單詞邊界。例如,regexp \bOK\b表示匹配緊跟在單詞邊界(例如字符串或空格的開始)之后的字母’O’,然后匹配緊跟在另一個單詞邊界(例如字符串或空格的結(jié)束)之前的字母’K’。但是請注意,斷言實際上并不匹配任何空格,所以如果我們寫(\bOK\b)并且我們有一個匹配,它將只包含’OK’,即使字符串是" it 's OK now"。
\B非單詞邊界。當\b為false時,該斷言為true。例如,如果我們在"Left on"中搜索\Bon\B,匹配將失敗(空格和字符串末尾不是非單詞邊界),但在"公噸"中會匹配。
(?=E)積極的超前。如果表達式在regexp中的這一點匹配,則此斷言為true。例如,const(?=\s+char)匹配const,只要它后面跟著char,比如static const char *。(與匹配’static const char *'的const\s+char比較。)
(?!E)消極的超前。如果表達式在regexp中的此時不匹配,則此斷言為true。例如,const(?!\s+char)匹配const,除非它后面跟著char。

七、通配符匹配

大多數(shù)命令shell,如bash或cmd.exe,都支持“文件通配符”,即通過使用通配符來識別一組文件的能力。setPatternSyntax()函數(shù)用于在regexp和通配符模式之間切換。通配符匹配比完整的正則表達式簡單得多,只有4個特征。

符號含義
c除下面提到的字符外,任何字符都代表自己。因此c匹配字符c。
匹配任意單個字符。它和。完整的正則表達式。
*匹配零個或多個任意字符。在完整的正則表達式中,它等同于 .*
[…]字符集可以用方括號表示,類似于完整的正則表達式。在字符類內(nèi)部,就像在字符類外部一樣,反斜杠沒有特殊的含義。

在模式通配符中,通配符不能轉(zhuǎn)義。在WildcardUnix模式中,字符 ‘\’ 對通配符進行轉(zhuǎn)義。
例如,如果我們使用通配符模式,并且有包含文件名的字符串,我們可以使用*. HTML來標識HTML文件。這將匹配零個或多個字符,然后是一個點號,然后是ht、ml。

要用通配符表達式測試字符串,可以使用exactMatch()。例如:

QRegExp rx("*.txt");
rx.setPatternSyntax(QRegExp::Wildcard);
rx.exactMatch("README.txt");        // returns true
rx.exactMatch("welcome.txt.bak");   // returns false

八、獲取文本

括號允許我們將元素組合在一起,以便我們可以量化和捕獲它們。例如,如果我們有表達式mail|letter|correspondence,它匹配一個字符串,我們知道其中一個單詞匹配,但不知道是哪個單詞。使用括號允許我們“捕獲”在它們的范圍內(nèi)匹配的任何內(nèi)容,因此如果我們使用(mail|letter|correspondence)并將這個regexp與字符串“I sent you some email”匹配,我們可以使用cap()或capturedTexts()函數(shù)來提取匹配的字符,在本例中是’mail’。

我們可以在regexp中使用捕獲的文本。為了引用捕獲的文本,我們使用從1開始索引的后向引用,與cap()相同。例如,我們可以使用\b(\w+)\ w+ \1\b在字符串中搜索重復的單詞,這意味著匹配單詞邊界,然后是一個或多個單詞字符,然后是一個或多個非單詞字符,然后是與第一個括號表達式相同的文本,然后是單詞邊界。

如果我們想使用圓括號純粹用于分組而不是捕獲,我們可以使用非捕獲語法,例如(?:green|blue)。非捕獲性括號以(?: and end 。在這個例子中,我們匹配greenblue,但我們不捕獲匹配,因此我們只知道是否匹配,而不知道實際找到的顏色。使用非捕獲式括號比使用捕獲式括號更高效,因為regexp引擎需要做的簿記工作更少。

捕獲括號和非捕獲括號都可以嵌套。

由于歷史原因,用于捕獲括號的量詞(例如*)比其他量詞更“貪婪”。例如,a*(a*)將匹配"aaa"與cap(1) == “aaa”。這種行為不同于其他regexp引擎(特別是Perl)。為了獲得更直觀的捕獲行為,可以在QRegExp構(gòu)造函數(shù)中指定QRegExp::RegExp2,或者調(diào)用setPatternSyntax(QRegExp::RegExp2)。

如果無法事先確定匹配項的數(shù)量,一種常見的習慣用法是在循環(huán)中使用cap()。例如:

QRegExp rx("(\\d+)");
QString str = "Offsets: 12 14 99 231 7";
QStringList list;
int pos = 0;

while ((pos = rx.indexIn(str, pos)) != -1) {
      list << rx.cap(1);
      pos += rx.matchedLength();
}
// list: ["12", "14", "99", "231", "7"]

九、例子

第三個字符串匹配’6’。這是一個簡單的驗證0到99范圍內(nèi)整數(shù)的regexp。

QRegExp rx("^\\d\\d?$");    // match integers 0 to 99
rx.indexIn("123");          // returns -1 (no match)
rx.indexIn("-6");           // returns -1 (no match)
rx.indexIn("6");            // returns 0 (matched at position 0)

第二個字符串與This_is-OK匹配。我們使用了字符集縮寫’\S’(非空白)和錨點來匹配不包含空白的字符串。

QRegExp rx("^\\S+$");       // match strings without whitespace
rx.indexIn("Hello world");  // returns -1 (no match)
rx.indexIn("This_is-OK");   // returns 0 (matched at position 0)

在下面的例子中,我們匹配包含’mail’或’letter’或’correspondence’的字符串,但只匹配整個單詞,即不匹配’email’

QRegExp rx("\\b(mail|letter|correspondence)\\b");
rx.indexIn("I sent you an email");     // returns -1 (no match)
rx.indexIn("Please write the letter"); // returns 17

第二個字符串匹配"Please write The letter"。單詞“letter”也被捕獲了(因為有括號)。我們可以這樣查看我們捕獲了什么文本:

QString captured = rx.cap(1); // captured == "letter"

這將從第一組捕獲括號中捕獲文本(從左到右計算捕獲的左括號)。括號從1開始計數(shù),因為cap(0)是整個匹配的regexp(相當于大多數(shù)regexp引擎中的’&')。

QRegExp rx("&(?!amp;)");      // match ampersands but not &amp;
QString line1 = "This & that";
line1.replace(rx, "&amp;");
// line1 == "This &amp; that"

QString line2 = "His &amp; hers & theirs";
line2.replace(rx, "&amp;");
  // line2 == "His &amp; hers &amp; theirs"

在這里,我們將QRegExp傳遞給QString的replace()函數(shù),以將匹配的文本替換為新的文本。

QString str = "One Eric another Eirik, and an Ericsson. "
                "How many Eiriks, Eric?";
QRegExp rx("\\b(Eric|Eirik)\\b"); // match Eric or Eirik
int pos = 0;    // where we are in the string
int count = 0;  // how many Eric and Eirik's we've counted
while (pos >= 0) {
      pos = rx.indexIn(str, pos);
      if (pos >= 0) {
          ++pos;      // move along in str
          ++count;    // count our Eric or Eirik
      }
}

我們使用了indexIn()函數(shù)來重復匹配字符串中的regexp。請注意,我們可以編寫pos+ = rx.matchedLength()來跳過已經(jīng)匹配的字符串,而不是每次前進一個字符pos++。計數(shù)將等于3,匹配’一個Eric另一個erik,和一個Ericsson。埃里克,有多少個eirik ?”它不匹配EricssonEiriks,因為它們沒有非單詞的邊界。

regexp的一個常見用途是將帶分隔符的數(shù)據(jù)行分割到它們的組件字段中。

str = "The Qt Company Ltd\tqt.io\tFinland";

QString company, web, country;
rx.setPattern("^([^\t]+)\t([^\t]+)\t([^\t]+)$");
if (rx.indexIn(str) != -1) {
      company = rx.cap(1);
      web = rx.cap(2);
      country = rx.cap(3);
}

在這個例子中,我們的輸入行格式為公司名稱、網(wǎng)站地址和國家。不幸的是,regexp相當長,并且不太通用——如果我們添加更多字段,代碼將中斷。一個更簡單、更好的解決方案是查找分隔符(在本例中是’\t’),并獲取其周圍的文本。QString::split()函數(shù)可以接受分隔符字符串或regexp作為參數(shù),并相應地分割字符串。

QStringList field = str.split("\t");

這里[0]字段表示公司,[1]字段表示網(wǎng)站地址,等等。

為了模仿shell的匹配,我們可以使用通配符模式。

QRegExp rx("*.html");
rx.setPatternSyntax(QRegExp::Wildcard);
rx.exactMatch("index.html");                // returns true
rx.exactMatch("default.htm");               // returns false
rx.exactMatch("readme.txt");                // returns false

通配符匹配很方便,因為它很簡單,但任何通配符regexp都可以用完整的regexp來定義,例如*.html$ ,注意,我們不能用通配符同時匹配 .html 和 .htm 文件,除非我們使用 *.htm* ,它也會匹配test.html.bak。一個完整的regexp可以提供我們需要的精度: .*.html?$

QRegExp可以使用setcasessensitivity()不區(qū)分大小寫進行匹配,也可以使用非貪婪匹配,參見setMinimal()。默認情況下,QRegExp使用完整的regexp,但這可以用setPatternSyntax()改變。使用indexxin()可以實現(xiàn)正向搜索,使用lastindexxin()可以實現(xiàn)反向搜索。捕獲的文本可以使用capturedTexts()來訪問,它會返回所有捕獲的字符串的字符串列表,或者使用cap()來返回給定索引的捕獲的字符串。pos()函數(shù)接受一個匹配項索引,并返回匹配項在字符串中的位置(如果沒有匹配項,則返回-1)。

總結(jié)

到此這篇關(guān)于Qt掃盲篇之QRegExp正則匹配類的文章就介紹到這了,更多相關(guān)Qt QRegExp正則匹配類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言中大小寫字母相互轉(zhuǎn)化的方法示例

    C語言中大小寫字母相互轉(zhuǎn)化的方法示例

    在C語言中,大小寫字母的轉(zhuǎn)換可以通過標準庫中的ctype.h頭文件提供的函數(shù)來實現(xiàn),具體來說,toupper()函數(shù)可以將小寫字母轉(zhuǎn)換為大寫字母,而tolower()函數(shù)可以將大寫字母轉(zhuǎn)換為小寫字母,本文給大家介紹了C語言中大小寫字母相互轉(zhuǎn)化的方法,需要的朋友可以參考下
    2024-08-08
  • C++代碼規(guī)范之命名規(guī)則

    C++代碼規(guī)范之命名規(guī)則

    以下是對C++中的命名規(guī)則進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07
  • C++中stack容器的使用

    C++中stack容器的使用

    本文主要介紹了C++中stack容器的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • OpenCV邊緣提取算法流程的實現(xiàn)(附DEMO)

    OpenCV邊緣提取算法流程的實現(xiàn)(附DEMO)

    本文主要介紹了OpenCV邊緣提取算法流程的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • C++詳解如何實現(xiàn)動態(tài)數(shù)組

    C++詳解如何實現(xiàn)動態(tài)數(shù)組

    這篇文章主要為大家詳細介紹了C++實現(xiàn)動態(tài)數(shù)組的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語言安全編碼之數(shù)組索引位的合法范圍

    C語言安全編碼之數(shù)組索引位的合法范圍

    這篇文章主要介紹了C語言安全編碼的數(shù)組索引位合法范圍剖析,對于編碼安全非常重要!需要的朋友可以參考下
    2014-07-07
  • 用C語言實現(xiàn)三子棋小游戲

    用C語言實現(xiàn)三子棋小游戲

    這篇文章主要為大家詳細介紹了用C語言實現(xiàn)三子棋小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C語言的常量,字符串,轉(zhuǎn)義字符,注釋你都了解嗎

    C語言的常量,字符串,轉(zhuǎn)義字符,注釋你都了解嗎

    這篇文章主要為大家詳細介紹了C語言的常量,字符串,轉(zhuǎn)義字符,注釋,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++數(shù)據(jù)結(jié)構(gòu)與算法之反轉(zhuǎn)鏈表的方法詳解

    C++數(shù)據(jù)結(jié)構(gòu)與算法之反轉(zhuǎn)鏈表的方法詳解

    這篇文章主要介紹了C++數(shù)據(jù)結(jié)構(gòu)與算法之反轉(zhuǎn)鏈表的方法,結(jié)合實例形式分析了C++反轉(zhuǎn)鏈表的原理、實現(xiàn)方法及相關(guān)注意事項,需要的朋友可以參考下
    2017-08-08
  • C++音樂播放按鈕的封裝過程詳解

    C++音樂播放按鈕的封裝過程詳解

    此篇文章用于記錄學習C++封裝音樂播放按鈕,封裝將對象的屬性和行為作為一個整體,表現(xiàn)生活中的事物、將屬性和行為加以權(quán)限控制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08

最新評論