C 語言程式設計 高階資料型別 字串

2021-10-04 19:51:30 字數 2787 閱讀 3546

《程式編譯流程與 gcc 編譯器》

《c 語言程式設計 — 基本語法》

《c 語言程式設計 — 基本資料型別》

《c 語言程式設計 — 變數與常量》

《c 語言程式設計 — 運算子》

《c 語言程式設計 — 邏輯控制語句》

《c 語言程式設計 — 函式》

《c 語言程式設計 — 高階資料型別 — 指標》

在 c 語言中,字串由char *型別表示。它是由一串字元組成的,並以乙個空終結字元結尾。所以,字串實際上是使用 null 字元 『\0』 終止的一維字元陣列。下面的宣告和初始化建立了乙個 「hello」 字元陣列(字串)。由於在陣列的末尾儲存了空字元,所以字元陣列的大小比單詞 「hello」 的字元數多乙個。

char greeting[6]

=;

字串還可以字面量來表示,將要表示的字串包裹在" "中就可以了。也就是說,並不需要把 null 字元顯式的放在字串常量的末尾。c 編譯器會在初始化陣列時,自動把 『\0』 放在字串的末尾。

c 中內建的字串操作函式:

)執行:

strcpy( str3, str1) :  hello

strcat( str1, str2): helloworld

strlen(str1) : 10

char

*strcpy

(char

* dst,

const

char

* src )

;

strcpy() 是乙個標準庫函式,把從 src 位址開始且含有 』\0』 結束符的字串複製到以 dest 開始的位址空間,返回值的型別為 char*。

note:當我們在程式中使用char *str來儲存乙個字串時,實際上並不安全,而是應該使用乙個真實的、定長的陣列來進行儲存。

static

char str2[20]

;...

char

*str1 =

"123"

strcpy

(str2, str1)

c 標準庫中的字串比較有兩個標準函式:strcmp 和 strncmp。

int strcmp (

const

char

* src,

const

char

* dst)

int

strncmp

(const

char

* src,

const

char

* dst, size_t n)

從兩者的函式原型可以看出,strncmp 多出來了乙個 「比較長度」 的形參,這也導致了在某些場景中使用 strncmp 會比 strcmp 更安全的結果。

兩個字串自左向右逐個字元相比(按 ascii 值大小相比較),直到出現不同的字元或遇 「\0」 為止,例如:

除了比較兩個字串之外,還可以用於比較陣列和字串,因為字串本質就是乙個陣列。

strncmp 可以指定比較 size_t n 個字元。也就是說,如果字串 s1 與 s2 的前 n 個字元相同,則函式返回值為 0。反正,則依次比較 s1 和 s2 的前 n 位,若第 i(i < n)個字元為首次的不同位,則返回:s1[i] - s2[i]

例如:str1=「abcdhg」,str2=「abcdef」。

可見,當我們比較兩個長度不一致的字串時,我們最好可以指定比較的 size_t n,確保 「有效字元」 的內容是一致的,而不會因為 「非預期的填充內容」 導致比較失敗

案例:

#define _crt_secure_no_warnings

#include

#include

#include

#pragma warning(disable:6031)

intmain

(int argc,

char

* ar**)

// scanf("%[^\n]", buf); 可以接受 空格

// fgets()

printf

("請您往檔案中的存入資料:\n");

char buf[

1024];

memset

(buf,0,

1024);

while(1

)int i =0;

while

(buf[i]

!='\0')}

fclose

(fp)

;system

("pause");

return exit_success;

}

C語言程式設計高階 字串陣列

char a a是乙個指標,指向另乙個指標,那個指標指向乙個 字串 char a 程式中a的第二維需要有確切的值char a 與char a不同,它是通過指標指向外部內容 示例 include int main void return 0 int main int argc,char const a...

資料型別 字串

一字串 定義 它是乙個有序的字元的集合,用於儲存和表示基本的文字資訊 或 中間包含的內容稱之為字串 特性 1只能存放乙個值 2不可變 3按照從左到右的順序定義字元集合,下表從0開始順序訪問,有序 字串的常用操作 移除空白 strip 首字母大寫.capitalize 所有大寫 upper 統計字元長...

C資料型別 字元陣列 字串 字串指標

字串,即把多個字元連在一起,並有順序的存放。本文主要內容是辨析c語言中儲存多字元的三種方式,及其特性。table of contents 字元陣列 字串字串指標 辨析字元陣列 字串 指標字串 字元陣列 char str 佔空間為4 可任意修改下標元素 不可使用庫函式 字串 char str haha...