C語言基礎 5

2021-09-02 18:47:11 字數 3062 閱讀 4200

一、一維字元陣列

1、說明形式

儲存型別 char 陣列名[元素個數];

注意:儲存型別 、陣列名及元素個數同之前的一位陣列;

2、一維字元陣列的初始化

1> 單個元素賦值

eg:char ch[10] = ;

char ch1[10] = ; //未賦值的元素系統賦'\0', 即ch[5]、ch[6]、ch[7]、ch[8]、ch[9]的值是'\0'

char ch2 = ;//sizeof(ch2)值為5

2> 字串賦值

eg:char ch[10] = ;

char ch1[10] = "hello";

char ch2 = "hello"; //sizeof(ch2)的值為6

注意:系統自動會在字串末尾加'\0' 

用「%s」輸出時,遇『\0』結束

3、字串函式

1> strlen() 函式

標頭檔案:

#include

函式原型:

size_t strlen(const char *s);

函式引數:

s:字串的首位址

函式功能:

計算字串的長度,不包括'\0'

返回值:

成功:字串的長度

eg:char buf[20] = "hello world";;

int len = strlen(buf);

2> strcat() 函式

標頭檔案:

#include

函式原型:

char *strcat(char *dest, const char *src);

函式引數:

dest:目標陣列的陣列名

src: 源字串的首位址

函式功能:

將源字串連線到dest指向的目標陣列之後

返回值:

成功:dest指標

注意:1》dest指向的陣列要足夠大;

2》連線之前,兩串均以'\0'結束,連線之後,dest指標指向的字串之後的'\0'被源字串的第乙個字元替換;

連線之後,在新串末尾加'\0';

3> strcpy() 函式

標頭檔案:

#include

函式原型:

char *strcpy(char *dest, const char *src);

函式引數:

dest:目標陣列的陣列名

src: 源字串的首位址

函式功能:

將源字串拷貝到dest指向的目標陣列中,拷貝時,將源字串後的'\0'一同拷貝

返回值:

成功:dest指標

注意:1》dest指向的陣列要足夠大;

2》拷貝時,將源字串後的'\0'一同拷貝

3》不能使用賦值語句為乙個字元陣列賦值

eg:char buf[20];

buf = "hello"; //error

strcpy(buf,"hello")//right

strncpy() 函式

標頭檔案:

#include

函式原型:

char *strncpy(char *dest, const char *src, size_t n);

函式引數:

dest:目標陣列的陣列名

src: 源字串的首位址

n:指定將src中的前n個字元拷貝到dest指向的目標陣列中

函式功能:

將src中的前n個字元拷貝到dest指向的目標陣列中

返回值:

成功:dest指標

4> strcmp() 函式

標頭檔案:

#include

函式原型:

int strcmp(const char *s1, const char *s2);

函式引數:

s1:字串1的首位址

s2:字串2的首位址

函式功能:

比較s1指向的字串與s2指向的字串的大小

返回值:

>0 :     字串1大於字串2

==0:     字串1等於字串2 

<0:      字串1小於字串2

注意:比較時,兩個字串對應位從左向右逐個比較,直到遇到不同字元或『\0』為止,實質是比較字元的ascii值

strncmp() 函式

標頭檔案:

#include

函式原型:

int strncmp(const char *s1, const char *s2, size_t n);

函式引數:

s1:字串1的首位址

s2:字串2的首位址

n:指定字串2的前n個字元與字串1比較

函式功能:

比較s1指向的前n個字元與s2指向的前n字元的大小

返回值:

>0 :     字串1大於字串2

==0:     字串1等於字串2 

<0:      字串1小於字串2

二、二維陣列    

有兩個下標的陣列;

1、說明形式

儲存型別 資料型別 陣列名[行數][列數];

eg:int a[3][4];

說明:1> 儲存型別同一維陣列;

2> 資料型別是陣列中各個元素的資料型別;

3> 陣列名符合合法的識別符號;

4> 所佔記憶體大小 = 行數*列數*sizeof(資料型別)或 sizeof(陣列名);

5> 陣列名是位址常量,不能做左值;

6> 二維陣列在記憶體中也是連續儲存(即按行儲存),是因為記憶體是線性的;

降維分析多維陣列:

eg:int a[3][4];

分析:將陣列a看做是乙個有3個元素的一位陣列,同時,這個一位陣列中的各個元素又是乙個一維陣列,每個一維陣列有4個元素構成;

a[0][0]

a[0][1] 

a[0]        

a[0][2]

a[0][3]

a[1][0]

a               a[1]               a[1][1]

C語言基礎練習5

1.求乙個3x3整型矩陣對角線元素之和 includeint main int i,j,sum 0 for i 0 i 3 i printf d n sum return 0 2.有一篇文章,共有3行文字,每行有80個字元。分別統計出大寫字母 小寫字母 數字 空格以及其他字元的個數 include ...

C語言基礎第5天

bool 型別 include 之後就可以使用 bool 和 true false bool 就是 布林型變數 類似於 float double 等 布林型,用作邏輯型判斷。bool 取值 false 和 true false 可以取值 0 但是 true 可以有很多種,並非只有 1 例如 incl...

C語言基礎5道題

都是手撕 建議自己推一遍。1 a1b2c3d4e5 include void uppercase char str int main 2 0,0,1,1 include int main 3 b 10,c 12,d 120 include int main 4 48 include int main...