1.strlen()
strlen所作的僅僅是乙個計數器的工作,它從記憶體的某個位置(可以是字串開頭,中間某個位置,甚至是某個不確定的記憶體區域)開始掃瞄,直到碰到第乙個字串結束符'\0'為止,然後返回計數器值(長度不包含'\0')。
例如 char a="abcd/0abc" strlen(a)他的值是4.
2.strcmp() (全稱:string compare)
其中:兩個字串自左向右逐個字元相比(按ascii值大小相比較),直到出現不同的字元或遇'\0'為止 (所以對於我這樣的初學者,只需要用到判定兩個字串是否相等,即返回值是否為0)
c/c++函式,比較兩個字串
設這兩個字串為str1,str2, strcpy(str1,str2)
若str1==str2,則返回零; 顯然這裡用到是判定兩字串是否相等。
若str1若str1>str2,則返回正數。
對於這不等於0的情況,目前我這基礎只適合用來對一些字串的排序問題。
例如:學生管理系統中名字排序問題(這裡保證學生的名和姓都為字母('a'~『z') first name(名字) last name(姓) 。顯然按照ascii和strcmp可以解決該類問題。
例如兩個字串 str1 =hello ,str2=hi 其中str1[100],str2[100],
puts (strcpy(str2,str1)) 輸出結果是 hello
puts (strcpy(str1,str2)) 輸出結果是 hi 因為str2的字串是"hi/0"進行copy操作的時候,會把/0也進行複製。
注意點:strcpy(str1,str2) 如果str2宣告的長度小於str1的宣告長度,那麼程式會出錯。
4.strcat() //字串的合併函式
例如兩個字串str1=「www.」 和str2=「4399.com」
char *p;
p=strcat(str1,str2);
puts(s); 結果輸出 www.4399.com
5.strstr (str1,str2) //在str1中查詢str2,即查詢子串行。
若str1中存在str2那麼返回值將會是在str1中的子串行str2的首位址。
若不存在,這返回null。
關於字串的函式
關於字串的操作函式有很多,那麼在眾多的函式中是否有乙個共通的地方。下面簡略分析一下。目前,我在學習中碰到的字串操作函式有 strlen,strcat,strcpy,strcmp 那麼我們按照上面的順序一一介紹一下。1.strlen strlen 是求取字串長度的函式 其原型為 size t strl...
字串問題及關於字串的函式
字串問題及關於字串的函式 1,char strcpy char dest,char src 把src指向的以null結束的字串複製到dest所指的陣列中。函式返回指向dest指標。注 1,接收字串的陣列或指標所指的記憶體區域一定要大於被複製的字串長度,否則系統可能由於字元長度不夠而被惡意修改。2,d...
關於字串函式的實現
在很多面試及筆試中,都會有字串的操作,有的甚至不允許使用c函式庫中的函式,所使用函式都需要自己編寫。那麼就有必要針對字串函式的實現,進行乙個講解。首先 將詳細講解在字串函式實現中常用的語句 str 實際上是先使用 str,再str str 1 這句話經常出現。比如計算字串長度 int strlen ...