首頁 > 軟體

適合初學者的C語言字串講解

2022-04-09 19:00:52

這一篇部落格我們來了解一下字串,看下面這個我們熟知的也是最先學習的程式碼

"Hello world!"

這一堆的字母就是字串字面值,簡稱字串,每一個字母都是一個字元,字串需要用" "雙引號來引起,字元需要用’ '單引號來引起,就像下面

"Hello world!"  //字串
'a'  //字元
'!'  //字元

字串也算常數,上面三條都算字面常數,之前的講常數的時候就舉過這種例子

那麼字串有什麼用呢?

假設我們要把下面的字串存起來,那麼我們需要怎麼存呢?

"abcdef"

我們可以把它放在字串陣列裡,有兩種形式如下:

#include<stdio.h>

int main()
{
char arr1[10]="abcdef";                     //形式一
char arr2[10]={'a','b','c','d','e','f'};    //形式二

//我們列印一下這些字串
printf("%sn",arr1);
printf("%sn",arr2);

return 0;
}

執行的結果:

abcdef

abcdef

把"abcdef"都存在arr[ ]這個陣列裡面,[ ]裡面數是多少,就能存多少字元

arr[10]可以存10個字元 ,但一定要不小於你要存的字元

你也可以不寫[ ]裡面的數位,它會自己根據你要存的字串來調整,就像這樣

#include<stdio.h>

int main()
{
char arr[]="abcdef";    //char-字元型別,沒有字串型別哦
return 0;
}

那這兩種形式有什麼區別呢?

我們不寫arr[ ]裡面的數位,我們來看一下

#include<stdio.h>

int main()
{
char arr1[]="abcdef";
char arr2[]={'a','b','c','d','e','f'};

//我們列印一下這些字串
printf("%sn",arr1);
printf("%sn",arr2);

return 0;
}

執行的結果:

abcdef

abcdef燙燙燙燙燙abcdef

哎,發現沒有,它們不一樣了,那為什麼會出現這種情況呢?

先想一個問題,它是根據什麼來停止列印的?

(啊,你會問:它們後面啥都沒有,我怎麼會知道它們根據什麼來停下來的)

那裡確實看不見有什麼標誌,但是那個標誌就是看不見的,字串的結束標誌是,它是一個我們馬上就會學到的跳脫字元

char arr1[]="abcdef";

這個形式一,字串後面就預設帶了一個

char arr2[]={'a','b','c','d','e','f'};

這個形式二,後面沒有

懂了吧,printf去列印的時候要識別到才會結束

第一個形式最後一個字元結束就識別到了,然後結束

第二個形式識別到最後的f,一直都沒有識別到,就一直列印下去,最後就出現剛才的結果

那麼如果我們給第二個形式加一個作為結束標誌怎麼樣,不要光想,我們來做一下試試

#include<stdio.h>

int main()
{
char arr1[]="abcdef";   //我們也試一下給它也加一個
char arr2[]={'a','b','c','d','e','f',''};

//我們列印一下這些字串
printf("%sn",arr1);    //%s是列印字串的
printf("%sn",arr2);    //%s是列印字串的
 
return 0;
}

執行的結果:

abcdef

abcdef

結果執行正常了

那麼算不算裡面的字串長度的一部分呢?

又來介紹一個好東西,strlen,它可以計算一個字串長度的函數,但是使用它還是跟以前一樣,需要給另一個標頭檔案string.h打一下招呼才能使用它,我們來實操一下:

#include<string.h>
#include<string.h>

int main()
{
	char a[] = "abc";
	char b[] = "abc";
	printf("%d", strlen(a));
	printf("%d", strlen(b));
	return 0;
}

執行結果:

3

3

"abc"

這個字串的長度為3,所以我們可以知道看不見的並不算在長度裡面的,就算在後面加上也是一樣

大家可以試一試計算一下第二種形式不加情況下的字串長度,保持好奇心,去自己嘗試一下。

就這樣,我們把"abcdef"這個陣列儲存起來了,那我們要使用裡面的字元怎麼辦?我們還需要再瞭解一個知識:

呼叫arr裡面字元,用arr[2]就可以呼叫c,用arr[0]就可以呼叫a,它們的對應關係也就是:

 a  b  c  d  e  f
 0  1  2  3  4  5

我們來實驗一下

#include<stdio.h>

int main()
{
char arr[]="abcdef";
printf("%c",arr[2]);
return 0;
}

執行結果:

a

#include<stdio.h>

int main()
{
char arr[]="abcdef";
printf("%c",arr[0]);
return 0;
}

執行結果:

a

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


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