C基礎 字串處理函式

2021-10-19 13:48:58 字數 4322 閱讀 2407

gets和puts

gets從標準裝置上獲取乙個字串,可以帶空格,直到接收到換行字元或者字串結束標誌才停止(不安全)

puts從標準裝置上輸出乙個字串,這個字串自帶』\n』換行

fgets和fputs

fgets格式:fgets(字元指標 大小 流【stdin】)是安全,會接收固定大小的字串

注意:1、如果接受少於大小 會將\n加入到字串中

2、如果接收大於等於大小 不會將\n加入到字串中 始終會將\0加入到字串中

scanf("%d %d %d",&a,&b,&c);

printf("%.2f\n",3.1415);

printf("%5d\n",12);// 12

printf("%05d\n",12);//00012

printf("%4s\n",「ab」);// ab

printf("%.4s\n",「abcdef」);//abcd

printf("%-5df\n",12);//12

1、strlen函式:計算目標字串長度,

格式:strlen(字元指標指向區域)

注意:①不包含字串結束符『\0』

②需要導入庫

2.拷貝函式:strcpy 引數: 目標字串 源字串

格式strcpy(目標字串 ,源字串 );

注拷貝字串時會將/0也拷貝

有限拷貝:strncpy 引數: 目標字串 源字串 字元長度3、追加函式/有限追加函式 strcat/strncat:

格式:strcat(目標字串 ,源字串)// 將源字串連線到目標字串的尾部

格式:strncat(目標字串 ,源字串,長度n)//將源字串前n個連線到目標字串的尾部

注:①被追加的目標字串 需要有足夠空間

②追加中 先去掉 目標字串中的 \0 再進行追加將 源字串中的\0也追加上

③有限追加注意:有限追加也會將\0追加

4、比較函式/有限比較函式strcmp/strncmp

格式:strcmp(字串 1,字串 2)// 比較1與2

格式:strcmp(字串 1,字串 2,比較長度n)// 比較1與2前n個字串

注:①在不同作業系統中strcmp結果會不同 有的返回1 ,0, -1 還可能返回ascii差值

②字串操作都是在\0結尾之前

5、字串轉化函式 sprintf / sscanf:

資料格式化後放入在字串中

格式:sprintf(目標字串 ,「引數」,源字串)// 根據引數將源字串來轉換並格式化資料,然後將結果輸出到指定的目標字串中

scanf(目標字串 ,「引數」,&源字串 )//根據引數將源字串來轉換並格式化資料,然後將結果輸入到指定的目標字串中

注意:①sscanf與scanf一樣需要在程式開始加入警告

②成功時返回具體個數 失敗 -1

6、在字串中查詢字元的位置 strchr函式:

格式:strchr(字串,『字元』)// 失敗返回空的值(unll)

注意 :

①找漢字時格式 「 漢字 」,是雙引號非單引號

② 字元使用單引號引起來

7、在字串中查詢另外字串的位置 strstr函式:

格式:strstr(源字串,「匹配字串」)

注意: 匹配字串使用雙引號引起來

8、字串分割 strtok函式

格式strtok(目標字串,「目標字串中所包含的字元」)

注意:① 將切割點用\0表示,切完之後會破壞原先字串樣式

②當連續出現多個分割字元時只替換第乙個為\0

9、atoi 轉整形 /atof轉 雙精度 /atol轉long型別 :

格式:atoi(目標字串) / atof(目標字串) / atol(目標字串)

注意:跳過前面的空格字元,直到遇到數字或正負號才開始做轉換,而遇到非數字或字串結束符(』\0』)才結束轉換

第一 函式的建立與定義

自定義格式:

返回值型別 函式名稱(引數)

{函式體 return返回值}

注意

①陣列作為函式引數,可以退化為函式名/可以退化為指標

②在定義函式時指定的形參,可有可無,根據函式的需要來設計,如果沒有形參,圓括號內容為空,或寫乙個void關鍵字

③return後面的值也可以是乙個表示式

第二 程式執行流程:
1、函式呼叫時在未出現函式呼叫時,它們並不佔記憶體中的儲存單元

2、形參:函式的定義中的引數列表中的資料稱為函式的形式引數 ,

3、實參:實際引數 ;

4、實參會影響會形參的值 形參不會影響實參的值

4、理論機制:形參接收實參 在函式內部進行運算。

注意:實參會在函式執行完成在記憶體中會被釋放掉

第三函式的宣告和呼叫

1、宣告: 宣告函式的型別

宣告的作用則是把函式的名字、函式型別以及形參的個數、型別和順序(注意,不包括函式體)通知編譯系統

2、定義:函式的定義就是對函式公功能的實現

3、呼叫 :執行函式 需要完成某項功能

注:

①乙個函式只能被定義一次,但可以宣告多次

②函式定義的位置在主調函式之後,則必須在呼叫此函式之前對被呼叫的函式作宣告。

4、函式的返回值

如果函式返回的型別和return語句中表示式的值不一致,則以函式返回型別為準,即函式返回型別決定返回值的型別。對數值型資料,可以自動進行型別轉換。

注意:如果函式返回的型別和return語句中表示式的值不一致,而它又無法自動進行型別轉換,程式則會報錯。

5、函式的引數列表

①在定義函式時指定的形參,必須是,型別+變數的形式

②作用域不同和可以使用相同的變數名

6、return 和 exit(0)

在main函式中呼叫exit和return結果是一樣的,但在子函式中呼叫return只是代表子函式終止了,在子函式中呼叫exit,那麼程式終止

第四 複習重點:

函式分類 系統 使用者定義

作用:函式的使用可以省去重複**的編寫,降低**重複率

函式名 見名知意

函式形參 不能給形參賦值

定義函式時 制定的形參 必須是 ,型別+變數的形式

函式的實參與形參

形參出現在函式定義中,在整個函式體內都可以使用,離開該函式則不能使用。

實參出現在主調函式中,進入被調函式後,實參也不能使用。

實參變數對形參變數的資料傳遞是「值傳遞」,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。

在呼叫函式時,編譯系統臨時給形參分配儲存單元。呼叫結束後,形參單元被釋放。

實參單元與形參單元是不同的單元。呼叫結束後,形參單元被釋放,函式呼叫結束返回主調函式後則不能再使用該形參變數。實參單元仍保留並維持原值。因此,在執行乙個被呼叫函式時,形參的值如果發生改變,並不會改變主調函式中實參的值。

第五 函式樣式:

1、有參無返回值 viod

2、有引數有返

3、無參無返

注意:

①如果是呼叫無參函式,則不能加上「實參」,但括號不能省略

②如果實參表列包含多個實參,則各引數間用逗號隔開

③實參與形參的個數應相等,型別應匹配(相同或賦值相容)。實參與形參按順序對應,一對一地傳遞資料。

第六 多檔案聯合程式設計

1、在檔案中函式都是全域性函式

2、檔案 作用:1 函式變數的宣告; 2 系統庫的呼叫

3、vi 編譯格式:gcc -o 可執行程式 檔案1.c檔案2.c 標頭檔案.h

4、

#pragma once 標頭檔案只包含一次

#ifndef __somefile_h__

#define __somefile_h__

#endif___somefile_h__

5、程式被喚醒起來可以傳遞附帶引數

6、argc 接收傳遞引數的個數

7、ar** 接收傳遞從引數的內容

C 基礎技巧 字串處理函式

string stringmessage string.empty stringmessage tolower 轉化成小寫字母 stringmessage toupper 轉化成大寫字母 stringmessage trim 刪除前後空格 stringmessage trim trimchars 刪...

C字串處理函式

void memccpy void dest,const void src,int c,size t n 從src所指向的物件複製n個字元到dest所指向的物件中。如果複製過程中遇到了字元c則停止複製,返回指標指向dest中字元c的下乙個位置 否則返回null。void memcpy void de...

C字串處理函式

void memccpy void dest,const void src,int c,size t n 從src所指向的物件複製n個字元到dest所指向的物件中。如果複製過程中遇到了字元c則停止複製,返回指標指向dest中字元c的下乙個位置 否則返回null。void memcpy void de...