c語言寬字元輸入
Ⅰ 在c語言中怎麼打出寬字元呢
用大寫的%S就可以:
wchar_t *wideChar = L"This is wide 中文顯示";
setlocale( LC_ALL, ".936" ); // 設置中文代碼頁,否則不列印中文
printf( "%s\n", wideChar ); //小寫,只打出一個字母
printf( "%S\n", wideChar ); //大寫,打出全部
Ⅱ C語言寬字元wchar_t 沒有發揮作用
wchar_t
根目錄於字元,
所以,你每次讀取的只有一個字母.輸入兩個字母以上相當於字元串了,
所以得使用wchar_t數組形式
#include
<stdio.h>
void
main(void)
{
int
_Bool
=
true;//
記錄是否成功轉換
wchar_t
T[100],
*p
=
T;//
最大可輸入99個字母,
最後一個'\0'
printf("請輸入大寫字母:\n");
scanf("%ls",&T);
while(*p!='\0'&&_Bool){
if(
*p
>=
L'A'
&&
*p
<=
L'Z'
)
{
*p
=
*p
-
L'A'
+
L'a';
}else{
_Bool
=
false;
}
++p;
}
if(_Bool){
printf("轉換之後的小寫字母為:%ls\n",T);
}else{
printf("輸入不正確,無法轉換!");
}
}
Ⅲ printf如何輸出寬字元
C語言中要輸出寬字元,可以使用wprintf(),同時要設置本地化,以適應寬字元輸出。示例如下,輸出寬字元「中」字。
#include<stdio.h>#include<locale.h>intmain(){setlocale(LC_ALL,"chs");wchar_twc=L'中';wprintf(L"%c ",wc);return0;}
Ⅳ C語言寬字元wchar_t 沒有發揮作用
wchar_t
根目錄於字元,
所以,你每次讀取的只有一個字母.輸入兩個字母以上相當於字元串了,
所以得使用wchar_t數組形式
#include
<stdio.h>
void
main(void)
{
int
_bool
=
true;//
記錄是否成功轉換
wchar_t
t[100],
*p
=
t;//
最大可輸入99個字母,
最後一個'\0'
printf("請輸入大寫字母:\n");
scanf("%ls",&t);
while(*p!='\0'&&_bool){
if(
*p
>=
l'a'
&&
*p
<=
l'z'
)
{
*p
=
*p
-
l'a'
+
l'a';
}else{
_bool
=
false;
}
++p;
}
if(_bool){
printf("轉換之後的小寫字母為:%ls\n",t);
}else{
printf("輸入不正確,無法轉換!");
}
}
Ⅳ c語言 如何從鍵盤輸入字元串
c語言從鍵盤輸入字元串的步驟如下:
1.首先我們新建一個dev C++的項目。
Ⅵ C語言中可以使用寬字元嗎怎麼定義,怎麼使用
需要包含<wchr.h>頭文件。
定義
wchar_t proverb[] = L"A nod is as good as a wink to a blind horse.";
printf("The proverb is:\n%S",proverb);
函數有 wcslen(const wchar_t* ws) ; :求寬字元串ws的長度
wcscpy
wcsncpy
wcscat
。。。。。。
Ⅶ 什麼是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語言,寬字元串字面值是什麼意思
寬字元就是比單純的字元要多佔一個位元組,譬如我們知道ASCII是佔一個位元組的,拿數字0來說,它的值是0x30,如果是寬字元,它就是占兩個位元組,前面就是0x00 0x30,這樣啦。
在C/C++中修飾寬字元,就是在字元前面加上L。比如
wchar_twx=L'A';//這個就是定義了一個寬字元常量,並用A來初始化它。
wchar_twstr[]=L"IloveU";//這個是定義了一個寬字元的數組。
里同的L就表示寬字元啦。
Ⅸ 一個寬字元串在C語言如何輸入問題
定義成
#include
<stdio.h>
main()
{
wchar_t
buff[256];
scanf(
"%s",
buff
);
printf(
"%s\n",
buff
);
}
但輸入還按scanf就可以
wscanf(...)
Ⅹ C語言寬字元
寬字元就是UNICODE操作的函數和ASIC字元有一點區別,一般用來表示漢字,MFC裡面用_T("")表示寬字元和ASIC字元兼容的字元串,就是通過宏定義來完成的,如果定義了使用UNICODE,_T("")宏就將其中的字元串轉換成UNICODE 否則就是普通的ASIC字元,建議寫MFC程序是定義字元串使用_T("字元串")的形式。
如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!