C語言字串

2021-08-20 11:18:14 字數 791 閱讀 2548

用雙引號括起來的內容稱為字串字面量,也叫做字串常量。雙引號中的字元和編譯器自動加入末尾的\0字元,都作為字串儲存在記憶體中,並且從ansic標準起,如果字串字面量之間沒有間隔,或者用空白字元分隔,c會將其視為串聯起來的字串字面量。如:

char greeting[50]= "hello , and"" how are  "" you";等價於:

char greeting[50]= "hello , and how are   you";

字串常量屬於靜態儲存類別。而且我覺得很有意思的一點是被雙引號括起來的字串被視為指向該字串儲存位置的指標,這一點就像陣列名是指向該陣列位置的指標一樣。

可以通過陣列建立字串也可以通過指標建立字串。如:

const char m1[40]="limit  yourself to one line's worth.";

const char * pt1 ="something is  pointing at me.";

這兩種方式的主要區別是:

用陣列建立字串,首先字串是儲存在靜態儲存區,當程式執行的時候,才會開始為陣列分配記憶體,此時會將字串拷貝到陣列中,這個時候字串有兩個副本,乙個是在靜態記憶體中的字串字面量,另乙個是儲存在陣列ar1中字串。

而用指標建立的字串,在程式開始執行的時候會把字串的位址儲存在指標變數中去。

按理說字串是常量,但是如果我們通過指標建立的話,就可能修改它裡面儲存的內容,所以推薦方式是用下面的方法初始化

字串。

const chatr * p1="beare the flingons!";

C語言字串 字串排序

本題要求編寫程式,讀入5個字串,按由小到大的順序輸出。輸入為由空格分隔的5個非空字串,每個字串不包括空格 製表符 換行符等空白字元,長度小於80。按照以下格式輸出排序後的結果 after sorted 每行乙個字串 red yellow blue green white after sorted b...

C語言 字串

char str lnj 字串變數 l n j 0 printf str size lu n sizeof str 字元陣列 這個並不是字串,而是字元陣列 char charvalues 如何輸出字串變數,s str 陣列的名稱,陣列的名稱就是陣列的位址 s的原理,從傳入的 位址 開始逐個取出,直到...

c語言字串

字串 字串1 概念 1.1 定義 1.1.1 用雙引號引起來的多個字元 1.2 兩個連續的雙引號中間是空格或回車,則兩個字串自動連在一起 1.3 遇見 0字串結束,0可以提前終止字串 1.4 初始化 1.4.1 char str 6 1.4.2 char str hello 編譯時自動給 加6 1....