前言
嗚嗚嗚這里先給各位小伙伴們道一個歉,真的不是UP主我有意鴿大家的,而是最近期末考試周,唉,來自學生黨的哭泣

好了言歸正傳,這一期,主要為大家講一講轉義字符和字串基礎,P話不多說,坐穩扶好,我們開始了!
目錄
字串
1.概述
2.字串的定義
3.重要的\0
轉義字符
1.介紹
2.對某些字符的解釋
字串
1.概述
字串字串,顧名思義,就是由多個字符組成的一串字符,字串通常用雙引號引起來,而單個字符通常用單引號來參考,
‘c’//單個字符
"hello world!"//字串
2.字串的定義
以下列舉2種字串定義方式
char arr1[]="hello world";//初始化陣列不需要定義陣列長度
char arr2[12]="hello world";//要定義也沒有問題
char arr3[]={'h','e','l','l','o'};//單個字符定義方式
3.重要的\0
\0,是一種轉義字符,它通常告訴程式,我這段字串已經到末尾了,它是一個字串中必不可少的部分,接下來用兩段代碼(片段)突出它的重要性:
char arr1[]={'c','s','d','n'};
char arr2[]={'c','s','d','n','\0'};
printf("%s\n",arr1);
printf("%s\n",arr2);
輸出結果如下:

為什么第一段代碼是亂碼呢?
就是因為\0,計算機在輸出字串的時候,由于第一個字串中沒有定義\0,程式找不到字串的終點,所以將輸出隨機亂碼,直到找到\0為止,
不過,萬幸的是,,,
在你直接用字串初始化陣列的時候,會提前把\0轉義字符給你輸入進去
比如:char[10]="abcdef"
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| a | b | c | d | e | f | \0 | \0 | \0 | \0 |
計算機自動會將沒有字符的方格中填上\0
如果沒有定義陣列長度,,
char[]="abcdef"
| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| a | b | c | d | e | f | \0 |
初始化的時候,計算機會自動加上一個\0噠,小伙伴們就不用自己加\0啦!
但是,在用strlen計算長度時,\0不會被算進字符長度里面,,,
char arr1[]={'c','s','d','n'};
char arr2[]={'c','s','d','n','\0'};
char arr3[10]="csdn";
printf("%d\n",strlen(arr1));//使用strlen時,需要引入string.h頭檔案
printf("%d\n",strlen(arr2));
printf("%d\n",strlen(arr3));
輸出結果如下

第一行字符,同樣,沒有\0,計算機不知道在什么時候停止運算,,,
第二行第三行,證明了,\0不算入字串長度里面,
轉義字符
1.介紹
轉義字符,顧名思義,就是轉變意思,下面列出一些常見的轉義字符
| 轉義字符 | 含義 |
| \' | 表示' |
| \" | 表示“ |
| \\ | 表示\ |
| \a | 警告字符 |
| \b | 退格字符 |
| \f | 進紙符 |
| \n | 換行符 |
| \r | 回車 |
| \t | 水平制表符 |
| \v | 垂直制表符 |
| \ddd | 八進制數字 |
| \xdd | 十六進制數字 |
2.對某些字符的解釋
如果你要在計算機里面輸入對話,,,
張三:"學好c語言,前途大大的好!"
萌新可能會這么輸入:
printf("張三:"學好c語言,前途大大的好"!\n");
此時,代碼成功地報錯了

錯誤原因,printf中,對字串的參考,已經使用了雙引號,而你還要輸出雙引號,計算機就傻傻的分不清哪個是你的參考,哪個是你的期望輸出了
為了解決這個問題,聰明的計算機科學家前輩們,已經為我們想好辦法啦!
printf("張三:\"學好c語言,前途大大的好\"!\n");
這下,就能成功輸出啦!

以此邏輯,代碼中的\',\\同理,
up主的話:
很高興大家能看到這里,也感謝小伙伴們對萌新up主的支持!up的文章中,若有什么錯誤與不足,敬請批評指正!臨近期末季,可能會鴿很多期博客,小伙伴們手下留情哇TAT,,,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286594.html
標籤:其他
下一篇:計算機網路復習整理(第一章-1)
