gets和puts
gets從標準裝置上獲取乙個字串,可以帶空格,直到接收到換行字元或者字串結束標誌才停止(不安全)
puts從標準裝置上輸出乙個字串,這個字串自帶』\n』換行
fgets和fputs
fgets格式:fgets(字元指標 大小 流【stdin】)是安全,會接收固定大小的字串
注意:1、如果接受少於大小 會將\n加入到字串中
2、如果接收大於等於大小 不會將\n加入到字串中 始終會將\0加入到字串中
scanf("%d %d %d",&a,&b,&c);1、strlen函式:計算目標字串長度,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
格式: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...