1.字符串操作
1.字符測試
1.測試是否爲英文字母
#include<ctype.h>
int isalpha(int c)
2.測試字符是否爲數字
int isdigit(int c)
2.字符串初始化
memset
將字符串的前n個字節清零,也可以使用bzero函數
3.字符串複製
1.strcpy
2.char *strdup(char *s);
3.void *memcpy(void *dest, void *src, unsigned int count);
4.memmove函數 與memcpy用法一樣
4.字符串比較
比較的函數主要有strcmp,strncmp,
strcasecmp,strncasecmp不區分大小寫
以及memcmp等。
5.字符/字符串查找
字符字符串查找的函數主要有index、rindex(從後向前查找)、strchr、strrchr以及strstr等
6.字符串鏈接與分割
實現函數爲::
strcat、strncat和strtok(分割函數)
2.數據交換
1.字母大小寫轉換
大寫轉小寫
toupper
小寫轉大寫
tolower
2.字符串轉換
實現字符串與整數、浮點數之間轉換的函數有atoi、atol、atof、strtol、strtod以及gcvt(浮點轉換字符串)
3.內存分配與釋放
1.內存空間的分配
alloca、calloc、malloc函數都是用來動態分配內存空間。
2.內存空間的釋放
釋放原先分配的內存空間使用free函數。
3.更改已分配的內存空間
realloc函數用來更改已分配的內存空間,可以變大,或縮小。
4.時間和日期
1.時間和日期的獲取
1.time函數
說明:
此函數會返回從公元1970年1月1日的UTC時間從0時0分0秒算起到現在所經過的秒數。
如果t並非空指針的話, 此函數也會將返回值存到t指針所指的內存。
2.gettimeofday函數
取得目前的時間
2.時間和日期的顯示
1.ctime函數
轉換爲常用的時間格式
2.gmtime函數
該函數的功能與ctime函數類似,但轉換結果以tm結構返回。
3.asctime函數
該函數的功能與ctime函數類似,轉換結果也是以字符串形式返回,但它的輸入參數爲tm結構。
3.時間的計算
difftime函數可以計算兩個時刻之間的時間差, 返回結果爲秒。
還有其他如gettimeofday獲取精確時間。
5.其他應用
1.命令行參數
main函數不能被其他函數調用,所以他的參數值從操作系統命令行獲取,有兩個參數argc和argv,其中argc是整形變量,argv爲指向字符串
的指針數組,用來存儲命令行輸入的所有參數。
定義函數
int getopt(int argc,char * const argv[ ],const char * optstring);
函數說明
getopt()用來分析命令行參數。參數argc和argv是由main()傳遞的參數個數和內容。參數optstring 則代表欲處理的選項字符串。
此函數會返回在argv 中下一個的選項字母,此字母會對應參數optstring 中的字母。如果選項字符串裏的字母后接着冒號“:”,
則表示還有相關的參數,全域變量optarg 即會指向此額外參數。如果getopt()找不到符合的參數則會印出錯信息,並將全域變量
optopt設爲“?”字符,如果不希望getopt()印出錯信息,則只要將全域變量opterr設爲0即可。
短參數的定義
getopt()使用optstring所指的字串作爲短參數列表,象"1ac:d::"就是一個短參數列表。短參數的定義是一個'-'後面跟一個字母或數字,
象-a, -b就是一個短參數。每個數字或字母定義一個參數。
其中短參數在getopt定義裏分爲三種:
1. 不帶值的參數,它的定義即是參數本身。
2. 必須帶值的參數,它的定義是在參數本身後面再加一個冒號。
3. 可選值的參數,它的定義是在參數本身後面加兩個冒號 。
在這裏拿上面的"1ac:d::"作爲樣例進行說明,其中的1,a就是不帶值的參數,c是必須帶值的參數,d是可選值的參數。
在實際調用中,'-1 -a -c cvalue -d', '-1 -a -c cvalue -ddvalue', '-1a -ddvalue -c cvalue'都是合法的。這裏需要注意三點:
1. 不帶值的參數可以連寫,象1和a是不帶值的參數,它們可以-1 -a分開寫,也可以-1a或-a1連寫。
2. 參數不分先後順序,'-1a -c cvalue -ddvalue'和'-d -c cvalue -a1'的解析結果是一樣的。
3. 要注意可選值的參數的值與參數之間不能有空格,必須寫成-ddvalue這樣的格式,如果寫成-d dvalue這樣的格式就會解析錯誤。
返回值
getopt()每次調用會逐次返回命令行傳入的參數。
當沒有參數的最後的一次調用時,getopt()將返回-1。
當解析到一個不在optstring裏面的參數,或者一個必選值參數不帶值時,返回'?'。
當optstring是以':'開頭時,缺值參數的情況下會返回':',而不是'?' 。
2.用戶和用戶組操作
1.getuid函數
獲取當前用戶進程的標示符
2.getgid函數
用來獲取當前組的標示符
3.getlogin函數
用來獲取當前用戶的賬戶名稱
4.getpwent函數
linux系統中,文件/etc/passwd中包含了所有的用戶賬號信息,該文件可以使用getpwent函數來讀取,該函數每次從文件中讀取
一項用戶數據,讀取完畢後使用endpwent函數將文件關閉。
5.getpwnam函數
該函數用來讀取指定的用戶信息
6.getutent函數
linux系統中,文件var/run/utmp中記錄着當前登錄用戶的信息
讀取完成後使用endutent函數將文件關閉。
3.環境變量操作
環境變量是包含系統環境信息的字符串,可以作用於用戶的整個工作空間。
1.getenv函數
用來獲取環境變量
2.putenv函數
用來更改或增加環境變量
3.setenv函數
用來更改或增加環境變量