c語言存儲字元串
字元型數據在內存中儲存的是它的ASCII碼值,它是一個位元組,所有數據類型在內存中都是以0和1代碼二進制儲存的,這個原則不會變。
在C語言中,char型數據是將一個字元常量放到一個字元變數中,並不是把該字元本身放到內存單元中去,而是將該字元的相應的ASCII代碼放到存儲單元中。
編碼中,一個漢字字元存儲需要2個位元組。在UTF-8編碼中,一個英文字母字元存儲需要1個位元組,一個漢字字元儲存需要3到4個位元組。在UTF-16編碼中,一個英文字母字元或一個漢字字元存儲都需要2個位元組。在UTF-32編碼中,世界上任何字元的存儲都需要4個位元組。
(1)c語言存儲字元串擴展閱讀:
由於標准 ASCII字元集字元數目有限,在實際應用中往往無法滿足要求。為此,國際標准化組織又制定了 ISO2022 標准,它規定了在保持與 ISO646 兼容的前提下將 ASCII字元集擴充為 8 位代碼的統一方法。
ISO 陸續制定了一批適用於不同地區的擴充 ASCII字元集,每種擴充 ASCII 字元集分別可以擴充 128 個字元,這些擴充字元的編碼均為高位為 1 的 8 位代碼(即十進制數 128~255 ),稱為擴展 ASCII 碼。
⑵ c語言中怎樣定義字元串
C語言本身是沒有設置一種類型來定義字元串變數的,字元串的存儲完全依賴於字元數組,但字元數組又不等於是字元串變數。在字元型一維數組存放字元串,並規定以字元'\0'作為字元串結束標志。
⑶ C語言中字元串的存儲以及輸出問題
1.
換行是puts的自帶技能,使用puts會自動換行
2.
char c[]={'H','i','\0'};跟char c[]={'H','i'}; 長度不一樣,它們的區別就是一般字元數組和字元串的區別
// 這里字元數組c的長度為3,包含'H','i','\0'這三個元素,其中'\0'為字元串結束符
// c可以作為字元串使用,等效於char c[]="Hi";
char c[]={'H','i','\0'};// 這里字元數組c的長度為2,包含'H','i'這兩個元素,不含字元串結束符
// c只是一個字元數組,不能作為字元串使用;
char c[]={'H','i'}; 用printf()函數輸出看看就能更明白了。
還有問題的話可以繼續追問。
⑷ C語言中是用字元串變數來存放字元串 是對還是錯 為什麼
C語言中,沒有字元串這種數據類型,是用字元數組來存放字元串,所以這種說法是錯的
⑸ c語言中有沒有字元串類型如何存放和處理字元串
沒有字元串類型,但是C語言中字元串實際就是多個字元鏈接在一起,所以可以用字元數組或者指針。可以這樣定義
char s[]="this is a string";
C語言也有string.h頭文件,使用這個頭文件可以直接這樣
string s="this is a string";
望採納
⑹ C語言是怎麼存儲字元串的末尾的\0需要自己手動輸入嗎
C語言中的字元串,應該說是指字元串常量,如:"hello",
"how
are
u"等,這些常量字元串本身在末尾存有一個\0,因\0是不可見字元,所以,看不到。
可以把字元串存儲到一個字元數組中,存儲方法分為三種:
1、定義字元數組,用常量字元串進行初始化
char str1[10]="hello"; //sizeof(str1)=10
char str2[]="how are u" ; //未指定數組大小,按初始化字元串實際大小開辟數組空間,sizeof(str2)=10 ; 9個字元+1個\0 通過此方法,可以驗證常量字元串中含有\0
2、定義字元數組,不初始化,採用字元串賦值操作函數進行賦值
char str[100];
strcpy( str, "hello"); //字元串拷貝
sprintf(str, "%s world", "hello"); //格式化輸入,得到hello world
以上函數會自動在字元串尾賦值字元串結束符
3、定義字元數組,不初始化,採用循環,逐位賦值字元,並在結束位置賦值\0
char str1[10];
char str2[]="hello" ;
int i,j;
for(i=0,j=0;str2[i]!='\0';i++ ) //遍歷字元串str2
if ( i%2 ) //只取偶數位
str1[j++]=str2[i];
str1[j]='\0'; //手動賦值結束符
⑺ C語言用什麼貯存字元串數據
1.字元串用字元數組保存。
2.在讀取字元串時,要用 %s 格式控制符,而不是 %c
3.字元串的比較不能用相等操作符(==),而要用strcmp()函數(需要包含string.h頭文件)。
例如你的程序中要比較n和"Maiiho"是否相等,應該用以下表達式:
if (!strcmp(n,"Maiiho")) /*如果要比較的兩個字元串相等,strcmp()函數返回0,否則返回非0值*/
⑻ c語言從終端輸入字元,這些字元如何存
數值在計算機中是以二進制的形式存儲的。
字元和字元串是先編碼後再轉化為二進制的形式存儲,編碼方式如(ASCII碼,UTF8)。
例如,char x=『a』,將一個字元常量放到一個字元變數中,實際上並不是把該字元本身放到內存單元中去,而是將該字元的相應的ASCII代碼放到存儲單元中。
C中字元表示用單引號,字元串表示用雙引號,字元串是一段連續的字元。
⑼ C語言如何在代碼中將漢字存入一個已經聲明過的字元串
這個要看字元集,不同字元集對一個字元的定義是不一樣的。你可以基本這么認為,你不可能一個字一個字的給漢字賦值,因為一個漢字對應多個字元,你不能拆開來賦值。你只能用strcpy當作字元串來拷貝
⑽ c語言中怎麼存一個字元串
在c語言中存儲一個字元串,一般有兩種方法,一種是字元指針,一種是使用字元數組。比如:
constchar*str="hello";//使用字元串指針
constcharstr[]="hello";//使用字元數組
如果保存的字元串,需要修改。一般使用字元數組。比如:
charpath[256]="c:\windows\";
strcat(path,"system32");