1. 程式人生 > >【C語言】學習筆記3——字符串

【C語言】學習筆記3——字符串

store 寫代碼 inf 變量類型 density scanf() 想要 限定符 tor

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——字符串