c語言寫的一些字符串處理函數,c語言中關於字符串的函數

本文目錄一覽:

在C語言中處理字符的幾種常用方法?

基本上兩種:字符數組和字符指針。字符數組名是常量,字符指針是變量

1、用字符數組:一個一維字符數組存儲一個字符串,二維數組存儲多個字符串。如:

int i;

char s1[]=”abc”,s2[][80]={“ABCD”,”XYZ”},s3[80];

scanf(“%s”,s3);

printf(“%s,%s\n”,s1,s3);

for(i=0;i2;i++)printf(“%s\n”,s2[i]);

2、用字符指針:字符指針指向一個字符串,字符指針數組處理多個字符串。如:

int i;

char *p1=”abc”,*p2[]={“ABCD”,”XYZ”},**p;

printf(“%s\n”,p1);

for(i=0;i2;i++)printf(“%s\n”,p2[i]);

p=p2;

for(i=0;i2;i++)printf(“%s\n”,*p++);

3、字符數組與字符指針配合一起使用:字符數組提供字符串的存儲,處理字符串用字符指針

char s[80],*p;

p=s;

scanf(“%s”,p);

printf(“%s”,p);

在string.h中所有處理字符串函數,對字符數組和字符指針都適用。

C語言字符串操作函數

strupr:將字符串s轉換為大寫形式

strlwr:將字符串s轉換為小寫形式

以上兩個沒說的!

●strlen功能:返回字符串s的長度,不包括串結束字符’\0′,也不是數組長度;

如下幾種方式:

1)strlen(“china”) 結果為5

2)char s[20]=”china”;

strlen(s) 結果為5

3)char *s=”china”;

strlen(s) 結果為5

●strcpy(字符串1,字符串2): 把字符串2中的所有內容,複製到字符串1中,不管字符串1中原先存放的是什麼,全部被覆蓋(要注意的是s1的長度要足夠容納s2)

●strcat(字符串1,字符串2): 將兩個字符串連接,形成一個新的字符串(要注意的是s1的長度要足夠容納s1和s2,只能字符串和字符串連接,不能直接和整型,float,double等連接,不過可以加上雙引號” “,使之變成字符型)

如下:

#includestdio.h

#includestring.h

void main()

{

char a[100];

char b[100];

strcpy(a,”我愛-“);

strcpy(b,”-美女”);

strcat(a,b);

puts(a); /*輸出:我愛–美女*/

}

●strcmp比較字符串的大小,但不是比較s1和s2的長度,而是比較對應字符串中的ASCII碼的大小

如下:

char s1[10]=”china”;

char s2[10]=”chz”;

strcmp(s1,s2); //返回一個負數,即s1s2。雖然s1的長度大於s2,但比較的是ASCII碼

C語言中如何編寫一個字符串複製函數,並在主函數中調用它。

#includestdio.h

char *custom_cpy(char *to,char *from);

int main(int argc,char *argv[]){

char *from = “i like c langanger”;

char to[30];

char *ptr = custom_cpy(to,from);

printf(“%s,%s\n”,ptr,to);

return 0;

}

char *custom_cpy(char *to,char *from){

if(to == NULL || from == NULL){

return NULL;

char *p = to;

for(;*from!=’\0′;from++,to++){

*to = *from;

*to = ‘\0’;//拷貝完畢之後一定要加一個結束符號

return p;

}

擴展資料:

字符串相關函數應用:

1. 連接運算 concat(s1,s2,s3…sn) 相當於s1+s2+s3+…+sn。

例:concat(『11』,’aa』)=’11aa』;

2. 求子串。 Copy(s,I,I) 從字符串s中截取第I個字符開始後的長度為l的子串。

例:copy(『abdag』,2,3)=』bda』;

3. 刪除子串。過程 Delete(s,I,l) 從字符串s中刪除第I個字符開始後的長度為l的子串。

例:s:=』abcde』;delete(s,2,3);結果s:=』ae』;

4. 插入子串。 過程Insert(s1,s2,I) 把s1插入到s2的第I個位置

例:s:=abc;insert(『12』,s,2);結果s:=』a12bc』;

5. 求字符串長度 length(s) 例:length(『12abc』)=5;

參考資料:

百度百科-字符串

c語言字符串處理函數的英文原名?

函數名: strrchr

功 能: 在串中查找指定字符的最後一個出現

用 法: char *strrchr(char *str, char c);

舉例:

[cpp] view plain copy

char fullname=”./lib/lib1.so”;

char *ptr;

ptr = strrchr(fullname,’/’);

printf(“filename is %s”,++ptr);

//運行結果:filename is lib1.so

函數名: strchr

功 能: 在串中查找指定字符的第一個出現

用 法: char *strchr(char *str, char c);

舉例:

[cpp] view plain copy

char fullname=”./lib/lib1.so”;

char *ptr;

ptr = strrchr(fullname,’.’);

printf(“after strchr() is %s”,++ptr);

//運行結果:after strchr() is /lib/lib1.so

函數名: strtok

功 能: 在串中查找指定字符的第一個出現

用 法: char *strtok(char *s, char *delim);

說明:

1.strtok函數的實質上的處理是,strtok在s中查找包含在delim中的字符並用NULL(』/0′)來替換,直到找遍整個字符串。這句話有兩層含義:(1)每次調用strtok函數只能獲得一個分割單位。(2)要獲得所有的分割單元必須反覆調用strtok函數。

2.strtok函數以後的調用時的需用NULL來替換s.

3.形參s(要分割的字符串)對應的變量應用char s[]=」….」形式,而不能用char *s=」….」形式。

舉例:

[cpp] view plain copy

void main()

{

char buf[]=」Golden Global View」;

char* token = strtok( buf, 」 「);

while( token != NULL )

{

printf( 」%s 「, token );

token = strtok( NULL, 」 「);

}

return 0;

}

/*其結果為:

Golden

Global

View

*/

C語言字符串處理函數

strcpy(p+strlen(q),r);表示從數組首地址偏移strlen(q),也就是從元素d所在的位置開始複製

這時複製完後數組p的長度為3+5=8(元素d被覆蓋)

strcat(p,q);表示從數組p的尾部進行連接,這時數組p的長度為8+3=11

而數組p在定義為char p[20],即請求連續開闢20個char類型存儲單元,而每個char佔一位元組,所以sizeof(p)等於20

還有問題嗎

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/309694.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-04 19:31
下一篇 2025-01-04 19:31

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • Python中將字符串轉化為浮點數

    本文將介紹在Python中將字符串轉化為浮點數的常用方法。在介紹方法之前,我們先來思考一下這個問題應該如何解決。 一、eval函數 在Python中,最簡單、最常用的將字符串轉化為…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29

發表回復

登錄後才能評論