宏定义可用于从文件名中删除路径名。由于文件名中的路径分隔符在windows和linux之间不同,在windows中为“/”,在linux中为“/”,因此使用的宏不同:#include<string。h>//strrchr()函数需要一个头文件windows:#definefilename(x)strrchr(x,“”)?strrchr(x,“”))1:xlinux:#定义文件名(x)strrchr(x,“/”)?strrchr(x,“/”)1:x调用:printf(“文件名%sn”,文件名(“file”)函数描述:函数原型:char*strrchr(constchar*s,intc)函数:strrchr()函数返回字符串[s]中最新出现的字符[c]。函数返回一个指针,指向最后出现在字符串s中的字符c的位置。如果c不在字符串s中,则返回null。ps:linux提供了相应的函数:basename(s),用于获取没有路径的文件名。
c语言的头文件如下:
#include<assert。h>//设置插入点
#包含类型(&t)。h>//字符处理
#包含<erno。h>//定义错误代码
#include<float。h>//浮点处理
#包含<fstream。h>//文件i/o
#包含ltiomanip(&l)。h>//参数化i/o
#包含ltiostream(&l)。h>//数据流i/o
#包含限制(&l)。h>//定义各种数据类型的最大常量
#include<locale。h>//定义本地化函数
#包括<math。定义数学函数
#包括<stdio。h>//定义i/o函数
#包括<stdlib。h>//定义其他函数和内存分配函数
#include<string。h>///字符串处理
#包含<strstream。h>//基于数组的i/o
#包含时间(&l)。h>//定义有关时间的函数
#include<wchar。h>//宽字符处理和i/o
#包含<wctype。h>//宽字符分类