溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎樣進(jìn)行C++ Builder的Visual構(gòu)件庫(kù)

發(fā)布時(shí)間:2021-10-27 17:31:12 來源:億速云 閱讀:145 作者:柒染 欄目:編程語(yǔ)言

怎樣進(jìn)行C++ Builder的Visual構(gòu)件庫(kù),相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

如果你用過具有string數(shù)據(jù)類型的編程語(yǔ)言,你可能很不習(xí)慣,別人也有同感,所以標(biāo)準(zhǔn)C++語(yǔ)言庫(kù)中提供了幾個(gè)字串操作函數(shù),希望大家能夠在這邊文章中得到自己想要的信息。

關(guān)于每個(gè)函數(shù)的詳細(xì)說明和實(shí)例,見C++ Builder聯(lián)機(jī)幫助。

//set up a string to hold 29 characters    char buff[30];    //copy a string literal to the buffer    strcpy (buff,"This is a test.");//display it    cout << buff << end;    //initialize a second string buffer    char buff2[]="A second string.";    //copy the contents of this string to the first buffer    strcpy (buff,buff2);    cout << buff << end1;

這里介紹的字串操作是C語(yǔ)言中的字串處理方法。大多數(shù)C++編譯器提供了cstring類,可以簡(jiǎn)化字串的處理(C++ Builder的Visual構(gòu)件庫(kù)中有個(gè)AnsiString類,可以處理字串操作。C++ Builder聯(lián)機(jī)幫助中詳細(xì)介紹了AnsiString類)。

盡管C語(yǔ)言中的字串處理方法比較麻煩,但并不過時(shí),C++編程人員經(jīng)常在使用cstring類和AnsiString類等字串類的同時(shí)使用C語(yǔ)言中的字串處理方法。這里不想對(duì)表中的每個(gè)函數(shù)進(jìn)行舉例說明,只想舉兩個(gè)最常用的函數(shù)。strcpy()函數(shù)將一個(gè)字串復(fù)制到另一字串中,源字串可以是變量或直接字串。例如下列代碼:

//set up a string to hold 29 characters    char buff[30];    //copy a string literal to the buffer    strcpy (buff,"This is a test.");//display it    cout << buff << end;    //initialize a second string buffer    char buff2[]="A second string.";    //copy the contents of this string to the first buffer    strcpy (buff,buff2);    cout << buff << end1;

這里建立了放10個(gè)字符的字符數(shù)組,最初指定需要9個(gè)字節(jié)的字符串(記住終止null)。后來可能忘記了數(shù)組長(zhǎng)度,將需要16個(gè)字節(jié)的字串復(fù)制到了緩沖區(qū),對(duì)數(shù)組重載了六個(gè)字節(jié)。這個(gè)小小錯(cuò)誤就擦去了某個(gè)內(nèi)存位置上的六個(gè)字節(jié)。

所以將數(shù)據(jù)復(fù)制到字符數(shù)組中時(shí)要特別小心。另一個(gè)常用的字串函數(shù)是sprintf()。這個(gè)函數(shù)可以混合文本和數(shù)字建立格式化字串。下面例子將兩個(gè)數(shù)相加,然后用sprintf()建立字串以報(bào)告結(jié)果:

//set up a string to hold 29 characters    char buff[30];    //copy a string literal to the buffer    strcpy (buff,"This is a test.");//display it    cout << buff << end;    //initialize a second string buffer    char buff2[]="A second string.";    //copy the contents of this string to the first buffer    strcpy (buff,buff2);    cout << buff << end1;

%d告訴sprintf()函數(shù)此處有個(gè)整型值,格式字串末尾插入變量x,告訴sprintf()在字串的這個(gè)位置放上變量x的值。sprintf()是個(gè)特別的函數(shù),可以取多個(gè)變?cè)?。你必須提供目?biāo)緩沖區(qū)和格式字串,但格式字串后面的變?cè)獢?shù)是個(gè)變量。下面的sprintf()例子用了另外三個(gè)變?cè)?/p>

//set up a string to hold 29 characters    char buff[30];    //copy a string literal to the buffer    strcpy (buff,"This is a test.");//display it    cout << buff << end;    //initialize a second string buffer    char buff2[]="A second string.";    //copy the contents of this string to the first buffer    strcpy (buff,buff2);    cout << buff << end1;

許多編程人員因?yàn)橥诉@個(gè)簡(jiǎn)單的事實(shí)而夜不能寐,苦苦折騰。這是個(gè)常見的錯(cuò)誤,別說我沒有告訴你。C++ Builder有個(gè)兄弟叫wsprintf(),是Windows版的sprintf().Windows程序中可能同時(shí)用這兩個(gè)函數(shù)。

wsprintf()與sprintf()的作用相似,***的差別是不能在格式字串中放上浮點(diǎn)數(shù)。C++ Builder程序中兩個(gè)函數(shù)均可使用,但用sprintf()更好,因?yàn)樗耆С指↑c(diǎn)數(shù)(還可以少輸入一個(gè)字符)。關(guān)于sprintf()的進(jìn)一步介紹,見C++ Builder聯(lián)機(jī)幫助。

看完上述內(nèi)容,你們掌握怎樣進(jìn)行C++ Builder的Visual構(gòu)件庫(kù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI