【C語言】學習筆記3——字符串
1. 字符串(charcacter string)是一個或多個字符的序列
2. C語言沒有專門用於存儲字符串的變量類型。字符串都被存儲在char類型的數組種。
3. 數組由連續的存儲單元組成,字符串種的字符被存儲在相鄰的存儲單元中, 每個單元存儲一個字符。結尾會
4. 聲明一個char變量和聲明一個char數組
5. 使用字符串。 下面的示例程序中我們可以看到:
a. 字符串 "yeyeck" 被存儲在一個長度為40的char數組中 char name[40];
b. sizeof(name) = 40 輸出的是聲明時char數組的大小。
c. strlen(name) = 6 輸出的時實際上“yeyeck”所占用的大小
另外, scanf() 方法只會讀取第一個單詞。fgets() 用於讀取一般的字符串
#include <string.h> //提供strlen() 函數原型 #define DENSITY 62.4 // 人體密度 (單位: 磅/立方英尺) int main() { float weight, volume; int size, letters;char name[40]; //聲明一個可容納40個字符的數組 printf("Hi! What‘s your first name?\n"); scanf("%s", name); printf("%s, what‘s your weight in pounds?\n", name); scanf("%f", &weight); size = sizeof(name); letters = strlen(name); volume = weight / DENSITY; printf("Well, %s, your volume is %2.2f cubic feet.\n", name, volume); printf("Also, your first name has %d letters,\n", letters); printf("and we have %d bytes to store it.\n", size); return 0; } /* output: Hi! What‘s your first name? yeyeck yeyeck, what‘s your weight in pounds? 100 Well, yeyeck, your volume is 1.60 cubic feet. Also, your first name has 6 letters, and we have 40 bytes to store it. */
3. 字符串常量和字符常量的區別。字符串末尾會跟一個空字符\0
4. 常量和預處理器。在程序中經常要使用到常量。比如說圓周率 Π。
a. 我們可以在程序中聲明變量 float pi = 3.14159
b. 如果我們這樣使用,因為 pi 是一個變量,在寫代碼的過程中如果不註意,可能會修改 pi 的值。 比如不小心寫了一行代碼 pi=31.456. 這是我們不想要的結果。
c. 使用C預處理器, 在程序頂部添加一行代碼
#define PI 3.14159
在編譯程序時,程序中所有的 PI 會被替換成3.14159。這一過程被稱為 編譯時替換。
通用格式為 # define NAME value。
預處理的過程如下圖
d. 使用const限定符(C90)。 const float PI = 3.14159;
這表明 PI 為一個只讀常量。 不允許更改
5. printf 輸出格式
【C語言】學習筆記3——字符串