小學生都看得懂的C語言入門 6 字串

2022-07-28 23:33:19 字數 3485 閱讀 5114

1.字元用 char 表示

#includeint

main()

else

return0;

}

結果顯示兩者不相等, 若用%d形式輸出,則有

printf("

c=%d\n

",c);//

1 printf("

d=%d\n

",d);//

49

如何輸入'1' 給字元c ?

#includeint

main()

輸入乙個1進去,

#includeint

main()

分別輸入1 和 49 得到:

由此,'1' 的ascii編碼是49

#includeint

main()

return0;

}

輸入48 ,得到 ,

說明 '1'=49, '0'=48;

#includeint

main()

得到

2. 混合輸入

#includeint

main()

輸入 12 1

得到  i=12,c=49,c='1'

輸入  12 a

得到  i=12,c=97,c='a'

字元的計算 如下

3. 字串

char w=; // 字元陣列

char w=; //  後面加了0, 表示字串

字串是以0 結尾的字元, 0 與'\0' 一樣, 但是與'0'不同.

但是計算字串的長度是不包含這個 0 的;

字串以陣列的形式存在, 可以用陣列或者指標進行訪問, 

string.h 中很多處理字串的函式;

#includeint

main()

#includeint

main()

得到結果

&i=000000000062fe3c

s=0000000000404000

s2=0000000000404000

s s2的位址一樣, 但是本地變數i 和s 相差很大, s位址很小, i 位址很大, 他們距離很遠, 這是為啥??

#includeint

main()

s 位於程式的**端, 是唯讀的 ,不可以寫, 因此不能進行修改s[0]='b', 否則程式崩潰!!

實際上 這個s 的型別是 const char *s, 由於歷史原因, 編譯器不接受 const  寫法;

如果想要對 字串進行修改, 就要用陣列形式進行定義!!  char s[ ]="hello world!";

#includeint

main()

得到&i=000000000062fe3c

s=0000000000404000

s2=0000000000404000

s3=000000000062fe30

s3 的位址也在乙個很大的地方!!, 是本地變數

4.字串運算

char*t="

title

"; // t指向了字串

char*s;

s=t;  //s也指向了該字串

//並沒有產生新的字串,只是讓指標s 指向了 t所指的字串,

//對s 的操作就是對t做的

#includeint

main()

輸入hello world

得到hello#

沒有讀到 world, 如何讓它讀到??

#includeint

main()

輸入hello world

得到hello#

world#

但是沒有讀到hello 與 world 中間的空格, 這個空格用來區分兩個單詞, 是個分隔符

scanf 讀到空格,tab 或者回車為止, 並且他是不安全的, 因為不知道要讀入的長度, 怎麼處理?

scanf("%7s",ss); // 最多輸入7個字元! 陣列長度是8 ,算上結尾的0 ,最多7個

#includeint

main()

注意:  第乙個超過7個的唯讀了前7個, 後面斷掉了, 但是第二個單詞還是取了前面沒讀完的部分,

輸入fahfjkhdskjfh jadshfjka

fahfjkh#

dskjfh#  

輸入hjd jfahkjhfl

hjd#

jfahkjh#

其他:

char b[10]="";//

空字串, b[0]='\0'

char b=""; //

這個陣列長度只有1,

5. 字串的函式

#include

常用函式:

(1)strlen 計算長度

(2)strcmp 比較

#include#include

intmain()

#include#include

intmain()

strcmp(s1,s2) 得到

0  s1==s2;

1  s1-1 s1>s2;

#include#include

intmain()

(3) strcpy 複製 位置對應, 從位置0開始,

(4)strcat 連線, 位置不對應, 從後面開始接上去!

兩者都存在安全問題, 可能目標地的儲存空間不夠, 用strncpy, strncat, n 表示最多拷貝多少個進去

strncpy(s1,s2,n)

(5)strchr 在字串中找字元, null 則沒有找到

胖虎都看得懂的CSS入門

層疊樣式表 英語 cascading style sheets,簡寫css 又稱串樣式列表 級聯樣式表 串接樣式表 層疊樣式表 階層式樣式表,一種用來為結構化文件 如html文件或xml應用 新增樣式 字型 間距和顏色等 的計算機語言,由w3c定義和維護。目前最新版本是css2.1,為w3c的推薦標...

小孩都看得懂的基尼不純度

全文共1343字,16幅圖,預計閱讀時間8分鐘。本文是 小孩都看得懂 系列的第十一篇,本系列的特點是極少公式,沒有 只有圖畫,只有故事。內容不長,碎片時間完全可以看完,但我背後付出的心血卻不少。喜歡就好!小孩都看得懂的神經網路 小孩都看得懂的推薦系統 小孩都看得懂的逐步提公升 小孩都看得懂的聚類 小...

人人都看得懂的正規表示式教程

編寫驗證規則最流行和最簡單的方法就是正規表示式了,但唯一的乙個問題是正規表示式的語法太隱晦了,讓人蛋疼無比。很多開發者為了在專案中應用複雜的驗證,經常要使用一些小抄來記住正則式的複雜語法和各種常用命令。在這篇文章中,我將試圖讓大家明白什麼是正規表示式,以及如何更輕鬆地學習正規表示式。也許你是初學者,...