當前位置:首頁 » 編程語言 » 字元寬度c語言

字元寬度c語言

發布時間: 2022-08-07 21:51:00

① C語言 輸出寬度的寬度指的是什麼

樣例中的%4d中的4就是最小輸出寬度,即顯示數字所佔用的最小的字元數,如果不足4個字元,用空格補齊

② C語言,計算字元串所佔的寬度

/*
下面的代碼計算一段ASCII文本的寬度。
每個字元可以設置不同的長度。
退格符會刪除前面一個字元,也可能導致刪掉前面一個換行符,使下面一行接在前面一行後面,使寬度更大。
*/
#include
#include
#include
#include
#define
TAB_WIDTH
8
//假設製表符的寬度為8
#define
ENTER_WIDTH
0
//假設回車符的寬度為0
#define
ALARM_WIDTH
0
//假設警示符的寬度為0
int
cl[256];
size_t
digMaxWidth(char
const
*
str)
{
char
*
b;
char
*
e;
size_t
ml;
size_t
l;
if(str==NULL)
return
0;
l=strlen(str);
b=(char
*)malloc(l+1);
memcpy(b,str,l+1);
e=b;
str=b;
for
(;*e;e++)
{
if(*e=='\b')
{
if(b>str)
b--;
}
else
{
*b=*e;
b++;
}
}
*b=0;
for(b=str,ml=0,l=0;*b;b++)
{
if(*b=='\n')
{
ml=ml>l?ml:l;
l=0;
}
else
l+=cl[*(unsigned
char
const
*)b];
}
free(str);
ml=ml>l?ml:l;
return
ml;
}
int
main()
{
int
c;
for(c=1;c<256;c++)
/*默認每隔字元寬度為1*/
cl[c]=1;
cl[0]=0;
cl['\t']=TAB_WIDTH;
/*製表符寬度*/
cl['\r']=ENTER_WIDTH;
/*回車符寬度*/
cl['\a']=ALARM_WIDTH;
/*警示符寬度*/
/*...*/
printf("%d\n",digMaxWidth("123\n4567\n12\nABCDEF"));
printf("%d\n",digMaxWidth("123\b\b\b\b\b\b\n4560007\n12\n\bABCDEF"));
return
0;
}

③ 什麼是C語言中的寬字元與多位元組字元

C 語言原本是在英文環境中設計的,主要的字元集是7 位的ASCII 碼。從此開始,8 位的byte(位元組)變成最常見的字元編碼單位,但是國際化軟體必須能夠表示不同的字元,而這些字元數量龐大,無法使用一個位元組編碼,於是世界上使用各式 各樣多位元組的字元編碼集合已經有數十年了,比如用來表示「非拉丁字母」以及「非字母」的中、日、韓文字系統。在1994 年,「Normative Addenm 1」(基準增補一)的採用,讓ISO C 可以標准化兩種表示大型字元集的方法:寬字元(wide character,該字元集內每個字元使用相同的位長)以及多位元組字元(multibyte character,每個字元可以是一到多個位元組不等,而某個位元組序列的字元值由字元串或流(stream)所在的環境背景決定)。
注 意: 雖然C現在提供抽象機制,可以處理和轉換不同種類的編碼集合,但語言本身並沒有定義或指定任何編碼集合,或任何字元集(除前一節提到的基本源代碼字元集和 基本運行字元集外)。換句話說,這部分是由個別的實現版本指定如何編碼寬字元,以及要支持什麼類型的多位元組字元編碼機制。
自從1994 年的增補之後,C 不只提供char類型,還提供wchar_t類型(寬字元),此類型定義在stddef.h 頭文件中。wchar_t 類型足以表示某個實現版本擴展字元集的任何元素。
雖然C 標准沒有支持Unicode 字元集,許多實現版本使用Unicode 轉換格式UTF-16 和UTF-32(參考http://www.unicode.org) 來處理寬字元。Unicode 標准和ISO/IEC 10646標准相當接近,而且是許多既有字元集(包括7 位的ASCII)的超集。如果遵循Unicode標准,wchar_t類型至少是16或32位長,而wchar_t類型的一個值就代表一個Unicode 字元。
在多位元組字元集中,每 個字元的編碼寬度都不等,可以是一個位元組,也可以是多個位元組。源代碼字元集和運行字元集都可能包含多位元組字元,如果真的包含多位元組字元的話,那麼基本字元 集中的每個字元都只會佔用一個位元組(完全沒有多位元組的字元),空字元是唯一的例外,空字元可能會佔用任意個數的位元組(但這些位元組內全部的位都必須為0)。 多位元組字元可以被用於字元的常量、字元串字面值(string literal)、標識符(identifier)、注釋(comment),以及頭文件。許多的多位元組字元集被設計來支持特定國家的語言,例如JIS 字元集(日本業界標准,Japanese Instrial Standard)。多位元組UTF-8 字元集是由Unicode Consortium(萬國碼聯盟)定義的,可以表示Unicode 字元集的所有字元。
UTF-8 字元所使用的空間大小從一個位元組到四個位元組都有可能。多位元組字元和寬字元(也就是wchar_t)的主要差異在於寬字元佔用的位元組數目都一樣,而多位元組字元的位元組數目不等,這樣的表示方式使得多位元組字元串比寬字元串更難處理。
比 方說,即使字元'A'可以用一個位元組來表示,但是要在多位元組的字元串中找到此字元,就不能使用簡單的位元組比對,因為即使在某個位置找到相符合的位元組,此字 節也不見得是一個字元,它可能是另一個不同字元的一部分。然而,多位元組字元相當適合用來將文字存儲成文件(參見第13 章)。
C 提供了一些標准函數,可以將多位元組字元轉換為wchar_t,或將寬字元轉換為多位元組字元。比方說,如果C 編譯器使用Unicode 標準的UTF-16 和UTF-8

④ 在C語言中什麼是字元寬

在C中,printf函數的使用格式是:printf(「格式控制字元串」,輸出表列)
其中「格式控制字元串」一般形式為:
[標志][輸出最小寬度][.精度][長度]類型。
如LZ問題中"%1d",其中數值1,就是指的輸出最小寬度。
而這個輸出最小寬度,是用十進制整數來表示的。
若實際位數多於定義的寬度,則按實際位數輸出,
若實際位數少於定義的寬度則補以空格或0。
所以當這個寬度為1時,因為此時a的值是5,只有1位,定義的寬度不大於實際寬度,所以按實際寬度輸出。但是定義寬度為2時,超過了實際數據寬度,所以多輸出的位補了空格。
另外,LZ所謂的字元寬應該是指輸出的字元位數的寬度。

⑤ C語言中的輸出寬度是什麼意思

輸出字元串中每個字元所佔的位置寬度。例如:%4c,表示字元輸出為4個字元寬度,不足位用空格占滿。

⑥ C語言怎麼輸入和輸出寬字元

寬字元有專門的輸入函數wscanf。
用普通的scanf也可以做到,但需要做處理,所以在輸入寬字元的時候,最佳選擇還是專門的wscanf。
當輸入寬字元型變數時,需要使用格式符號%lc, 輸入寬字元串時需要使用格式符號%ls。
另外,寬字元一般用wprintf輸出,這時輸出字元和字元串時,用%c和%s即可。
參考代碼如下:

void main( void ){ wchar_t wc, ws[81];//定義一個寬字元變數,及一個寬字元數組。 wscanf( L"%lc%ls",&wc, ws );//輸入值。 wprintf( L"%c,%s\n",wc, ws);//輸出值。}

⑦ C語言欄位寬度的問題,有點混亂

理解它不難,首先要知道:%符號/空白m.nf(f可以換成lf).這種域寬是對實型數據進行控制的。上邊m,n要為正整數。m為數據的總寬度,n為小數點後只保留的位數(要四捨五入的)不足的補零。分析:當m的大小小於實際數據的長度時,m不會起作用,本題中2.345e2(為實型常量原數為234.5)m為2,但是數據的長度明顯大於2,所以以處的2沒有作用;後面的n為2,就表示小數點後只保留兩位,即234.5變為234.50(不足位的要用零補充,多的要用四捨五入進行處理)。輸出最後結果為234.50。
%+0.2f:上面出現的符號/空白表示是否要輸入相應的符號位。重點在於0.2的理解,題目中重點考慮的是小數的後的位數,而不是整個數的長度。我們為了方便控制數據的顯示方式時,就用0去代替原來的長度了,就不用我們人去一位位去數了,如果我們不開始不知道原數據的長度時,我們不好去猜測,所以只好用0來表示。

⑧ C語言,字元寬度什麼意思那個setw4 setw6是什麼意思

setw是指輸出數據佔用多少個字元

setfill是指不夠的字元用這個來代替

cout<<setfill('*')<<setw(6)<<123;

意思就是用6個字元的寬度輸出123,不夠6個字元的話,前面補 『*』

⑨ C語言中字元所佔的寬度中寬度是什麼意思寬度是長短的意思嗎

所佔的寬度就是包含了多少個字元的位置,比如,5個寬度,那麼輸出的時候將會佔5個空,不足5位的時候默認右對齊,加個負號的話則變成左對齊

⑩ C語言,字元寬度什麼意思

在printf()函數中使用附加格式字元!!!例如對於你上例中的字元串,如果希望它共佔50字元,而且是字元串左對齊,則使用語句如下:printf("%-50s","sdafgsdaf");其中50表示輸出該數據項至少佔50字元寬度,-號表示如果數據不足50字元,則數據向左對齊,如果要右對齊,不加-號就可以了。

熱點內容
db2plsql 發布:2025-01-22 08:19:10 瀏覽:778
豬豬俠腳本沒反應 發布:2025-01-22 08:08:37 瀏覽:811
賽博朋克跟永劫無間哪個配置高 發布:2025-01-22 08:07:07 瀏覽:534
請盡快上傳 發布:2025-01-22 08:06:22 瀏覽:188
河北編程培訓 發布:2025-01-22 08:01:42 瀏覽:591
a星演算法視頻 發布:2025-01-22 07:55:01 瀏覽:878
快手安卓怎麼直播 發布:2025-01-22 07:54:58 瀏覽:937
買伺服器搭建vpn 發布:2025-01-22 07:53:21 瀏覽:808
路由器忘記密碼如何解 發布:2025-01-22 07:38:47 瀏覽:154
5分鍾視頻編譯 發布:2025-01-22 07:36:33 瀏覽:772