splitp.c
来自「ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机」· C语言 代码 · 共 51 行
C
51 行
#include <string.h>
/*
* @implemented
*/
void _splitpath(const char* path, char* drive, char* dir, char* fname, char* ext)
{
const char* tmp_drive;
const char* tmp_dir;
const char* tmp_ext;
tmp_drive = strchr(path,':');
if (drive) {
if (tmp_drive) {
strncpy(drive,tmp_drive-1,2);
*(drive+2) = 0;
} else {
*drive = 0;
}
}
if (!tmp_drive) {
tmp_drive = path - 1;
}
tmp_dir = (char*)strrchr(path,'\\');
if (dir) {
if (tmp_dir) {
strncpy(dir,tmp_drive+1,tmp_dir-tmp_drive);
*(dir+(tmp_dir-tmp_drive)) = 0;
} else {
*dir =0;
}
}
tmp_ext = strrchr(path,'.');
if (!tmp_ext) {
tmp_ext = path+strlen(path);
}
if (ext) {
strcpy(ext,tmp_ext);
}
if (tmp_dir) {
strncpy(fname,tmp_dir+1,tmp_ext-tmp_dir-1);
*(fname+(tmp_ext-tmp_dir-1)) = 0;
} else {
strncpy(fname,tmp_drive+1,tmp_ext-tmp_drive-1);
*(fname+(tmp_ext-path))=0;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?