首頁 > 軟體

C語言 詳解字串基礎

2022-04-18 22:02:42

一、字串的概念

字串是有序字元的集合

字串是程式中的基本元素之一

C 語言中沒有字串的概念

  • C 語言中通過特殊的字元陣列模擬字串
  • C 語言中的字串是以 ‘’ 結尾的字元陣列

二、字元陣列與字串

在C語言中,雙引號參照的單個或多個字元是—種特殊的字面量

  • 儲存於程式的全域性唯讀存諸區
  • 本質為字元陣列,編譯器自動在結尾加上 ‘' 字元

下面看一段字元陣列與字串的程式碼:

#include <stdio.h>
 
int main()
{
    char ca[] = {'H', 'e', 'l', 'l', 'o'};
    char sa[] = {'W', 'o', 'r', 'l', 'd', ''};
    char ss[] = "Hello world!";
    char* str = "Hello world!";
    
    printf("%sn", ca);
    printf("%sn", sa);
    printf("%sn", ss);
    printf("%sn", str);
    
    return 0;
}

輸出結果如下:

因為 ca[ ] 是字元陣列而不是字串,%s 這個格式化字元表示所需要列印的就是字串,所以列印 ca 自然就會不對。

三、字串字面量的祕密

  • 字串字面量的本質是一個陣列
  • 字串字面量可以看作常數指標
  • 字串字面量中的字元不可改變
  • 字串字面量至少包含一個字元

"Hello World !”是一個無名的字元陣列

下面看一個字串字面量的程式碼:

#include <stdio.h>
 
int main()
{
    char b = "abc"[0];
    char c = *("123" + 1);
    char t = *"";
    
    printf("%cn", b);
    printf("%cn", c);
    printf("%dn", t);
    
    printf("%sn", "Hello");
    printf("%pn", "World");
    
    return 0;
}

輸出結果如下:

注意char t = *" "; 裡面包含了一個 ''

四、字串的長度

  • 字串的長度就是字串所包含字元的個數
  • 字串長度指的是第一個 ‘’ 字元前出現的字元個數
  • 通過 '' 結束符來確定字串的長度
  • 函數 strlen 用於返回字串的長度

下面看一段 strlen 的使用:

#include <stdio.h>
#include <string.h>
 
int main()
{
    char s[] = "Helloworld";
    int i = 0;
    
    for(i=0; i<sizeof(s)/sizeof(char); i++)
    {
        printf("%cn", s[i]);
    }
    
    printf("%sn", s);
 
    printf( "%dn", strlen(s) );
    printf( "%dn", strlen("123") );
 
    
    return 0;
}

輸出結果如下:

s 代表字串的話代表的就是 Hello,s 如果代表字元陣列的話代表的就是 Helloworld

五、小結

  • C 語言中通過字元陣列模擬字串
  • C 語言中的字串使用 ‘’ 作為結束符
  • 字串字面量的本質為字元陣列
  • 字串相關函數都依賴於結束符 ‘'

到此這篇關於C語言 詳解字串基礎的文章就介紹到這了,更多相關C語言 字串內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com