您好,登錄后才能下訂單哦!
/* 字符串?:?有序的字符序列.本質(zhì)?:?字符數(shù)組,不同的是,創(chuàng)建字符串時(shí),系統(tǒng)默認(rèn)在字符串末尾添加字符串結(jié)束標(biāo)志"\0",因此字符串在內(nèi)存中的實(shí)際長(zhǎng)度比字符串的長(zhǎng)度多一; ????定義格式?:?char?字符串名稱(chēng)[字符串長(zhǎng)度];????//注:?字符串長(zhǎng)度指的是字符串在內(nèi)存中的實(shí)際長(zhǎng)度; ????初始化?:?1,定義的同時(shí)初始化,如?:?char?string[3]?=?"ab";????//此時(shí)字符串長(zhǎng)度可省略; ?????????????2,定義后,在初始化,如?:?char?string[3];string?=?"ab";????//此時(shí),不在允許一次性賦值,只能夠分別為每一個(gè)位置賦值 ?????????????3,通過(guò)數(shù)組定義字符串?:?char?string[3]?=?{'a',?'b',?'\0'};????//當(dāng)然,如果賦值時(shí),元素的長(zhǎng)度小于字符串的定義長(zhǎng)度,此時(shí),"\0"可不寫(xiě), ????????????????????????????????????????????????????????????????????????????因?yàn)槟J(rèn)空白位置的值就是"0",而"0"就是"\0"的ASCII值; ????字符串的輸入輸出?: ????????輸出?:?printf("string?=?%s",string);????//輸出過(guò)程分析?:字符串的本質(zhì)即為一個(gè)字符數(shù)組,因此作為實(shí)參時(shí),實(shí)際上傳遞給函數(shù)的是字符串在內(nèi)存中的地址, ?????????????????????????????????????????????????????????????????首先,判斷該地址指向的字符是否為"\0",如果是,什么也不輸出,跳出函數(shù);如果不是,輸出該字符, ??????????????????????????????????????????????????????????????????地址加1,繼續(xù)上述判斷,直至遇到"\0"; ???????????????puts(string)????//原樣輸出,自動(dòng)換行; ????????輸入?:?scanf("%s",&string)????//?注?:?接收字符串時(shí),默認(rèn)以空白字符結(jié)束,因此無(wú)法接收含有空白字符的字符串; ???????????????gets(string)????//注?:?此函數(shù)可接受含有空白字符的字符串,但該函數(shù)并不安全; ????????計(jì)算字符串長(zhǎng)度?:?include?<string.h> ?????????????????????????size_t?length?=?strlen(string);????//原理?:?從傳入的地址開(kāi)始,逐個(gè)判斷計(jì)數(shù),直至"\0",利用指針可自己實(shí)現(xiàn)該函數(shù); ????????字符串的連接?:?include?<string.h> ???????????????????????strcat(dest,?src)????//將src拼接至dest,由于是直接對(duì)dest進(jìn)行操作,因此要求dest有足夠的長(zhǎng)度接收src; ???????????????????????strncat(dest,?src,?size_t)????//size_t參數(shù)接收拼接至dest的src中字符的個(gè)數(shù),目的在于保證dest的安全,當(dāng)src的長(zhǎng)度大于dest能夠接受的字符 ???????????????????????????????????????????????????????串長(zhǎng)度時(shí),有可能會(huì)擠占dest中"\0"的位置,導(dǎo)致字符串無(wú)法正確結(jié)束,而錯(cuò)誤訪問(wèn)其他內(nèi)存空間; ????????字符串拷貝?:?strcpy(dest,?src) ?????????????????????strncpy(dest,?src,?size_t) ????????字符串比較?:?strcmp(dest,?src)????//返回0,則兩個(gè)字符串相等;返回整數(shù),字符串不等,且首次遇到的不等位置的字符的ASCII值大于另一個(gè)字符串對(duì)應(yīng)位置的字符的 ????????????????????????????????????????????ASCII值;如果小于0,字符串不等,且首次遇到的不等位置的字符的ASCII值小于另一個(gè)字符串對(duì)應(yīng)位置的字符的ASCII值 ????????字符串?dāng)?shù)組?:?本質(zhì)?:?二位數(shù)組; */
免責(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)容。