[C語言_ 01] 字元陣列,字串傻傻分不清楚? - Medium
文章推薦指數: 80 %
本篇文章會介紹C語言字元陣列和字串的區別,讓大家可以輕鬆玩C語言char[]的字串,那麼廢話不多說,我們就開始撰寫C語言吧! Photo by Fab Lentz on ...
GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWritePublishedinAndy的趣味程式練功坊[C語言_01]字元陣列,字串傻傻分不清楚?關於本文本篇文章會介紹C語言字元陣列和字串的區別,讓大家可以輕鬆玩C語言char[]的字串,那麼廢話不多說,我們就開始撰寫C語言吧!PhotobyFabLentzonUnsplash字元陣列與字串,傻傻分不清楚?C語言並沒有「string」這種類型的的資料型別,但我們還是想寫字串呀,這時候我們只能透過「char[]」矩陣來模擬字串,那要注意的事情是:字串絕對是char類型陣列,但char類型陣列不一定是字串這是啥意思呢?我們先介紹一下結尾符的概念:C++的字元陣列,如果要表示成字串,要在最後一個元素加上’\0',意思是跟系統說,我的字串就到這邊結尾呦!//字串charc1[]={'h','a','p','p','y','\0'};printf("%s",c1);//記得要用""及%s//輸出happy那如果我調皮又懶惰,就是不想加‘\0’做結尾呢?那麼這個陣列就不是一個字串,只是普通字元數組,輸出可能會有亂碼,因此字串算是一種特殊的char類型陣列。
好難理解喔,我們還是直接看程式碼吧!字串的幾種初始化方式第一種-不指定長度,沒有結束符(超不優)charc1[]={'a','b','c'};printf("%s\n",c1);//abc亂碼第二種-指定長度,後面元素沒有賦值(後面的元素自動補空)charc2[100]={'a','b','c'};printf("%s\n",c1);//abc第三種-不指定長度,最後加上’\0'or0charc1[]={'a','b','c','0'};charc2[]={'a','b','c',0};//直接寫0也可以printf("%s\n",c1);//abcprintf("%s\n",c2);//abc第四種-使用兩個引號初始化,編譯器會自動在後面補’\0'(非常常用)charc2[]="你快樂嗎?";printf("%s\n",c1);//你快樂嗎?字串的輸入與輸出因為字串有加上’\0'結尾符的關係,輸入輸出變得超級方便的,但要注意的是,用scanf讀取字串時,遇到空白字元便會結束。
//定義一個能容納一百個字元的字元陣列charstr[100];printf("inputstring1:\n");//輸入字串scanf("%s",str);//輸入coffeeshopprintf("output:%s\n",str);//輸出coffee字串的追加這裡用笨方法來將兩個字串合併起來,下一章節講述字串的函數使用後,會更簡單XD今天介紹就先到這邊~希望有為你解惑,下一篇會著重在字串的函數使用,大家好好期待:)我是Andy,謝謝你看完這篇文章,如果文章有幫助到你的話,希望不吝於幫我拍手🙌🙌--MorefromAndy的趣味程式練功坊基礎程式/專案/技術分享/前端/後端/AppReadmorefromAndy的趣味程式練功坊AboutHelpTermsPrivacyGettheMediumappGetstartedAndyCheng152Followers若能將學到的知識轉化為易懂的文章,才能算是真正學會。
這是我創建這個帳號的初衷。
FollowMorefromMediumZhilaTransistorsandtheLegendofZeldaStreetEngineersSinglepushbuttonforOn/OffabulbGeraldClarkSpaceShooter:SwitchStatementsandSpeedBoostTylerHenryUnityProfessionalLayoutHelpStatusWritersBlogCareersPrivacyTermsAboutKnowable
延伸文章資訊
- 1Char和String的區別 - 程序員學院
char是字元型別, string是字串型別,雖然一字之差,但其本質區別是很大的。 在c#中它屬於值型別(value type)。char型別的長度是固定的,在c++中它 ...
- 2(轉) char s[]字串和char *s字串有什麼差別? @ 大玩家闖天涯的 ...
AbstractC語言有兩種字串宣告方式char s[]和char *s,兩者有什麼差異呢?Introduction char s[] = "Hello World";char *
- 3(原創) char s[]字串和char *s字串有什麼差別? (C/C++) (C)
C語言有兩種字串宣告方式char s[]和char *s,兩者有什麼差異呢? ... 的s是一個pointer指向char,由於"Hello World"本身就是一個string literal...
- 4CString與string、char*的區別和轉換 - 程式人生
string是C++標準庫(STL)中的型別,它是定義的一個類,定義在<string>標頭檔案中。裡面包含了對字串的各種常用操作,它較char*的優勢是內容可以動態拓展, ...
- 5c/c++中string与char的区别 - CSDN博客
在C语言中,string 是定义一个字符串,存储的是一段如“abcd”的数据,而且最后还有一个结束符'\0'; char 是定义一个字符,存储一个字符,占一个字节。