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函数
用来更改或增加环境变量