C與字符串string處理有關(guān)的四個(gè)函數(shù)
注意下文介紹的四個(gè)函數(shù)中strcpy和strcat是沒有返回值的所以我們不能靈a=strcpy(s1,s2)
比如我們令s3中括號(hào)=stract()就會(huì)報(bào)錯(cuò) 一 strlen函數(shù)(求字符串長度) 從字符串首字符開始監(jiān)測計(jì)數(shù)監(jiān)測到/0立即停止 計(jì)數(shù)不包括/0 strlen(s)計(jì)算的長度=sizeof(s)-1
例題
二 字符賦值(復(fù)制)strcpy 語法結(jié)構(gòu) strcpy(s1 s2) 就是把字符串s2的值給s1的意思 相當(dāng)于s1=s2 s2比s1長的話s2會(huì)直接把s1覆蓋掉 s2比s1短的話 s1的字符串也會(huì)被s2的字符串完全替代 短
相等
長
注意這里1 printf(%s)是要把s1用字符串類型打印出 2 字符串定義一定要按數(shù)組格式定義加中括號(hào) 例題
第一部先連接 那么p=abcdabcde strlen(q)=3 第二部賦值 把p+3 也就是dabcde用q賦值 也就是dabcde變成abc 最后得到結(jié)果p為abcabc長度為6 三 strcat函數(shù)(字符串連接) strcat(s1,s2)無返回值 就是把s1和s2連接起來 本質(zhì)是把s2連接到s1上面形成新的s1
四,字符串比較strcmp函數(shù) 1字符串比較原理 從第一個(gè)字符開始逐個(gè)對(duì)不檢驗(yàn) 直到s1 與s2出現(xiàn)不同字符或/0停止 出現(xiàn)不同字符就比較這兩個(gè)字符的ASKL碼值大小 誰大就s1>s2返回值為正數(shù) 注意只比較第一個(gè)不同字符的阿克斯碼
例如
第一個(gè)不同的字母是s1的b和s2的f f阿克斯碼值更大所以s1<s2返回值為負(fù) 字符串比較的例題
記住數(shù)組名也就是字符串的名字是地址 是星p后面的p對(duì)應(yīng)的 補(bǔ)充 五,sizeof()操作符(不是函數(shù)) 求一個(gè)類型或者一個(gè)字符串的字節(jié)數(shù) 1求類型
本題選A sizeof(double)的值為8表示double類型占字節(jié)數(shù)為8 2.sizeof(s)s表示一個(gè)字符串的數(shù)組名 五 補(bǔ)充 字符串中的空格占字節(jié)數(shù)也占長度都只占一個(gè)