《程式編譯流程與 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...