轉義字符、格式控制問(wèn)題總結
轉義字符是容易出題目的地方,記得沒(méi)錯的我應該是好幾次出錯啦,今晚好好的復習了一下。主要需要注意的轉義字符如下所示:, ,,,f,,,",ddd,xhh,這些轉義字符在A(yíng)SCII中都有固定的值,在求解字符串長(cháng)度的過(guò)程中很容易出現錯誤,每種轉義字符都有自己的作用。需要注意的是在ddd和xhh這兩個(gè)轉義字符,其中ddd中的d是只0-7的三個(gè)數字,而xhh中的h可以是從0-9a-f之間的字符。但是需要注意的是xhh可以是兩個(gè)字符或者一個(gè)字符,這需要我們在實(shí)際情況下進(jìn)行分析。在ddd中,需要注意后的三個(gè)數字的值,不能大于7。
比如下面的字符串:
char Str[]="abcf "123789x78xfg";
上面這個(gè)字符串的長(cháng)度就是18。這種就是比較復雜的情況了,這種比較復雜的情況只有搞清楚轉義字符的作用才會(huì )計算出字符串的長(cháng)度,因此在分析字符串的長(cháng)度時(shí)我們需要考慮轉義字符的問(wèn)題。
printf的格式問(wèn)題,該函數的返回值是字符串的字節數,這種返回可以在sprintf中實(shí)現字符串的多次打印問(wèn)題,可以參看銳捷的筆試題。printf的打印存在各種格式,其中比較容易被考試的就是附加格式說(shuō)明字符:
l 用來(lái)實(shí)現長(cháng)整型整數,可以加在格式符d、o、x、u前面。
m(代表一個(gè)正整數)數據的最小寬度
n (代表一個(gè)正整數) 對實(shí)數,表示輸出n位小數,對字符串表示截取的字符串個(gè)數。
- 輸出的數字或者字符在域內向左靠。
上面的四種附加格式都是筆試中經(jīng)常要考的內容,雖然都是小問(wèn)題但是卻是失分的地方,說(shuō)明了我們的基礎不過(guò)關(guān)。特別是當字符串采用附加格式輸出時(shí)就比較容易出錯啦。
%ms,輸出的字符串占m列,如果字符串本身長(cháng)度大于m,則突破m的限制,將字符串全部輸出。若串長(cháng)小于m,則將左補空格。
%-ms,若串長(cháng)小于m,則在m的返回內字符串向左靠,右補空格。
%m.ns,輸出占m列,但只取字符串左端n個(gè)字符,這n個(gè)字符輸出在m列的右端,左補空格。
%-m.ns,其中m,n和%m.ns相同,n個(gè)字符輸出在m列的左端,右補空格。當n>m,m自動(dòng)取值為n,即正常輸出n個(gè)字符。
%m.nf,輸出的數據占m列,其中n位小數。如果數據長(cháng)度小于m,則左端補空格。
%-m.nf與%m.nf只是使輸出的數值向左端靠,右端補空格。
還需要注意的是打印百分號采用"%%"實(shí)現的。
scanf的格式設置,和printf有一定的相似性,但是也有一定的區別。scanf不能限制小數點(diǎn)的寬度,只有位域寬度,沒(méi)有n值,還需要注意存在一個(gè)忽略符"*",比如%*3d,忽略掉3位整數,跳過(guò)不賦值給變量。
l 用于輸入長(cháng)度整形數據
h 用于輸入短整型數據
域寬 指定輸入數據所占的寬度,域寬為正整數。
* 表示本輸入項在讀入后不賦給相應的變量。
今天就簡(jiǎn)要的總結一下基本的格式,雖然這些都是基本的不能再基本的知識,但是筆試就只能這樣啦。
評論