<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
這一篇部落格我們來了解一下字串,看下面這個我們熟知的也是最先學習的程式碼
"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!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45