# String ###### tags: `C` ## String Literal 1. 宣告 : - 結尾必有『\0』,即NULL(整數)。 ```c= char* str="Hello"; char* str="He" "llo" ``` 2. $String\ Literal$ : - 宣告 : 可以用『""』夾住。 - 可以用『\』或『""』分開。 - pointer to constant 。 3. String 的操作 : 可以將常字串視為陣列。 ```c= char c="abc"[1]; void Transform(int num){ return "0123456789ABCDEF"[num]; } ``` 4. 注意 : 字串非字元。 ```c= char* a="a"; // a是指標。 char a_1='a'; // a_1是泛整數類別 ``` ## String Variable 1. string array 和string : - string : 最後一個為『\0』。 - string array : 最後一個不為『\0』,但也可以存字元。 2. 宣告 : 注意必須多一個空間存『NULL』。 - 通常define 一個marco為字串最長(通常不包含NULL空間)。 - 遇到NULL就死掉。 - 也是用『""』夾住。 3. string的宣告,就是一個初始化陣列的簡寫。 ```c= char str[8]="Testing" ``` 4. 初始化 : - 可以等於長度 : 沒有NULL,邏輯錯誤。 - 可以大於 : 補『\0』。 - 不能小於 : 會『complier error』。 5. 可以用char* 指向char array。 - 使用一個沒指向的char* 為undefine behavrior。 ## Input 和Output