C語言中必須掌握的字符串處理函數(shù)_第1頁
C語言中必須掌握的字符串處理函數(shù)_第2頁
C語言中必須掌握的字符串處理函數(shù)_第3頁
C語言中必須掌握的字符串處理函數(shù)_第4頁
C語言中必須掌握的字符串處理函數(shù)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

------------------------------------------------------------------------C語言中必須掌握的字符串處理函數(shù)那些你不太熟悉的字符串處理函數(shù)函數(shù)集合(全部包含在string.h頭文件中)Intstrcoll(constchar*s1,constchar*s2);Size_tstrxfrm(char*s1,constchar*s2,size_tn);Char*strchr(constchar*s,intc);Char*strrchr(constchar*s,intc);Size_tstrcspn(constchar*s1,constchar*s2);Size_tstrspn(constchar*s1,constchar*s2);Char*strpbrk(constchar*s1,constchar*s2);Char*strstr(constchar*s1,constchar*s2);Char*strtok(char*s1,constchar*s2);Strcoll()Strcoll是一個比較兩個字符串大小的函數(shù),比較規(guī)則是LC_COLLATE;默認情況下和strcmp等函數(shù)一樣是根據(jù)ascii碼排序,但是對于設(shè)置了lc_collate語言環(huán)境的情況下,則根據(jù)設(shè)置的環(huán)境比較大小,譬如,漢字根據(jù)拼音排序。例子:#include<stdio.h>#include<string.h>intmain(){char*s1="iaove";char*s2="ihate";inti=strcoll(s1,s2);intj=strcmp(s1,s2);printf("i=%d,j=%d\n",i,j);return0;}Strxfrm()Strxfrm是一個字符串轉(zhuǎn)換的函數(shù),叫字符串s2轉(zhuǎn)換后,保存到s1。這種轉(zhuǎn)換根據(jù)lc_collate進行。當(dāng)區(qū)域選項是“POSIX”或者“C”時,函數(shù)和strncpy一樣。返回被轉(zhuǎn)換的字符數(shù)(不包括結(jié)束的空字符)例子:#include<stdio.h>#include<string.h>intmain(){chars1[100]="iaove";char*s2="ihate";inti=strxfrm(s1,s2,99-strlen(s1));printf("i=%d,s1=%s",i,s1);return0;}Strchr()Strchr是一個尋找字符c在字符串s中第一次出現(xiàn)的位置,終止用的空字符被認為是返回串的一部分。返回定位字符的指針,如果沒有,則返回空指針。#include<stdio.h>#include<string.h>intmain(){char*s1="iamastudent";charc='m';char*des=strchr(s1,c);printf("是第%d個,字符為:%c",des-s1+1,*des);return0;}Strrchr()Strrchr尋找字符c在字符串s中最后一次出現(xiàn)的位置,終止符被認為是串的一部分。函數(shù)返回找到的字符的指針,如果沒有,則返回空指針。#include<stdio.h>#include<string.h>intmain(){char*s1="iamastudent";charc='t';char*des=strrchr(s1,c);printf("是第%d個,字符為:%c",des-s1+1,*des);return0;}Strcspn()Strcspn計算s1指向的字符串中完全不是由s2字符串中的字符組成的最大初始段的長度。也就是說從頭開始對比與s2串的字符后都不相同的連續(xù)字符的個數(shù)#include<stdio.h>#include<string.h>intmain(){char*s1="abcdefghijklmnabcabcd";char*s2="bc";inti=strcspn(s1,s2);printf("i=%d\n",i);return0;}Strspn()Strspn計算s1指向的字符串完全由s2指向的字符串中的字符組成的最大初始段的長度。也就是說s1從頭開始比,如果說第一個字符都不在s2中,則返回0,如果在,則比較第二個字符,返回值+1,依次比較,直到找到不同的為止;例子#include<stdio.h>#include<string.h>intmain(){char*s1="abcdefghijklmnabcabcd";char*s2="bc";inti=strspn(s1,s2);printf("i=%d\n",i);return0;}#include<stdio.h>#include<string.h>intmain(){char*s1="abcdefghijklmnabcabcd";char*s2="abc";inti=strspn(s1,s2);printf("i=%d\n",i);return0;}Strpbrk()Strpbrk()確定s2字符串中的任意字符在s1指向的字符串中首次出現(xiàn)的位置,返回該字符的指針,如果s1中沒有s2中的任意字符,則返回空指針。#include<stdio.h>#include<string.h>intmain(){char*s1="abcdefghijklmnabcabcd";char*s2="kji";char*i=strpbrk(s1,s2);printf("第%d個,字符為:%c\n",i-s1+1,*i);return0;}Strstr()Strstr返回一個字符指針,確定s1字符串中第一次出現(xiàn)s2字符串中的字符序列(必須是字符一樣,順序一樣)的位置。如果沒有找到該串,則返回空指針,如果s2長度為0,則返回s1.#include<stdio.h>#include<string.h>intmain(){char*s1="abcdefghijklmnabcabcd";char*s2="ghi";char*str=strstr(s1,s2);if(str==NULL){printf("null\n");}else{printf("%c",*str);}return0;}Strtok()Strtok()以s2字符串為界,對s1字符串進行切割,從s1的頭部開始對s1進行查找,一旦找到與s2字符串中的任意字符的相同的字符,則在該位置截斷,s1的搜索位置會被靜態(tài)變量記錄下來,如果想從截斷部分在進行一次截斷查詢,則需要將s1設(shè)置為NULL再執(zhí)行該函數(shù)一次。這里要注意第一個字符串變量需要是一個可以改變的變量。#include<stdio.h>#include<string.h>intmain(){ch

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論