天天看點

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

1. 字元串(charcacter string)是一個或多個字元的序列

2. C語言沒有專門用于存儲字元串的變量類型。字元串都被存儲在char類型的數組種。

3. 數組由連續的存儲單元組成,字元串種的字元被存儲在相鄰的存儲單元中, 每個單元存儲一個字元。結尾會

                

【C語言】學習筆記3——字元串
4. 聲明一個char變量和聲明一個char數組
【C語言】學習筆記3——字元串

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

                          

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

          

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

4. 常量和預處理器。在程式中經常要使用到常量。比如說圓周率 Π。

  a. 我們可以在程式中聲明變量     float pi = 3.14159

  b. 如果我們這樣使用,因為 pi 是一個變量,在寫代碼的過程中如果不注意,可能會修改 pi 的值。 比如不小心寫了一行代碼 pi=31.456. 這是我們不想要的結果。

  c. 使用C預處理器, 在程式頂部添加一行代碼

        #define PI 3.14159

   在編譯程式時,程式中所有的 PI 會被替換成3.14159。這一過程被稱為 編譯時替換。

   通用格式為  # define NAME value。

   預處理的過程如下圖

  

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

  d. 使用const限定符(C90)。 const float PI = 3.14159;

   這表明 PI 為一個隻讀常量。 不允許更改

5. printf 輸出格式

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

繼續閱讀