c語言基礎 字串陣列

2022-03-01 16:42:27 字數 1816 閱讀 3031

在 c 語言中,字串實際上是使用null字元 '\0' 終止的一維字元陣列。因此,乙個以 null 結尾的字串,包含了組成字串的字元。

下面的使用字串陣列宣告和初始化建立了乙個 "hello" 字串。由於在陣列的末尾儲存了空字元,所以字元陣列的大小比單詞 "hello" 的字元數多乙個。

char greeting[6] = ;
依據陣列初始化規則,您可以把上面的語句寫成以下語句:

void

main()

操作字串的函式:

1、 strcpy(s1, s2);

複製字串 s2 到字串 s1。

2、 strcat(s1, s2);

連線字串 s2 到字串 s1 的末尾。

3、 strlen(s1);

返回字串 s1 的長度。

4、 strcmp(s1, s2);

如果 s1 和 s2 是相同的,則返回 0;如果 s1s2 則返回大於 0。

5、 strchr(s1, ch);

返回乙個指標,指向字串 s1 中字元 ch 的第一次出現的位置。

6、 strstr(s1, s2);

返回乙個指標,指向字串 s1 中字串 s2 的第一次出現的位置。

字串陣列賦值

struct

student ;

intmain()

字串指標賦值

int

main() stu1;

//給結構體賦值

stu1.name = "

tom"

;}

char *p = 「hello」;

上邊的表示式為什麼可以,而把p換成陣列,然後再賦值就不行了

解釋:字串常量"hello"出現在乙個表示式中時,"hello"表示式使用的值就是這些字元所儲存的位址(在常量區),而不是這些字元本身。

所以,可以把字串賦值給指向字元的指標p,而不能把字串賦值給乙個字元陣列。 

char a[10] = 「hello」; //這樣可以,這種情況是c語言初始化所支援的

如果寫成char a[10];然後 a = 「hello」 這樣就錯誤了。 

同樣是a陣列,char a[10] = 「hello」;這種是陣列的初始化,和a[0] = 『h』 a[1] = 『e』…是乙個道理

但是換成char a [10];然後a = 「hello」就不行了, 「hello」賦值的值是乙個位址,而a雖然也有位址,但是這與指標是不一樣的,指標的值是位址,而陣列的值雖然也是位址,但是卻是乙個常量,所以不能給常量賦值。

陣列都是由連續的記憶體位置組成。最低的位址對應第乙個元素,最高的位址對應最後乙個元素。

type arrayname [ arraysize ];
叫做一維陣列。arraysize必須是乙個大於零的整數常量,type可以是任意有效的 c 資料型別。

在 c 中,您可以逐個初始化陣列,也可以使用乙個初始化語句,如下所示:

double balance[5] = ;
大括號 之間的值的數目不能大於我們在陣列宣告時在方括號 [ ] 中指定的元素數目。

如果您省略掉了陣列的大小,陣列的大小則為初始化時元素的個數。因此,如果:

double balance = ;

C語言基礎 陣列和字串

本文介紹了c語言陣列和字串的基本知識。什麼是陣列 陣列,從字面上看,就是一組資料的意思,沒錯,陣列就是用來儲存一組資料的 陣列的特點 只能存放一種型別的資料,比如int型別的陣列 float型別的陣列 裡面存放的資料稱為 元素 陣列的定義 定義 宣告陣列的型別 宣告陣列的元素個數 需要多少儲存空間 ...

C語言基礎 陣列與字串

一 陣列變數 在上一節中我們學習了如何定義變數,例如定義一月的最多天數為31,則定義int max 31 即可。但是如果我們有很多個變數需要定義,例如從一月到十二月的最大天數不盡相同,我們就需要定義12個變數,用於存放這些數值。在c語言中提供了乙個方便定義同型別多個變數的方式,叫做陣列。我們來看一下...

Day for C語言基礎 陣列,字串

初始化一維陣列 includeint main 沒有賦初值的部分自動變為0 int b 系統自動判斷陣列大小 for int i 0 i 10 i printf n return 0 二維陣列的宣告和使用 二維陣列行列互換 includeint main char b 3 2 int i,j for...