C-C中的函数_splitpath说明

相关资料:

https://blog.csdn.net/weikangc/article/details/45744445 原作者出处

引用头文件:
    <stdlib.h>
函数原型如下:
    void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext);
参数说明:
1.待处理文件名路径,完整的路径例如:"c:windowsmyfile.txt",不完整:"myfile.txt"。
2.驱动器盘符(drive)
3.中间的路径(dir)
4.文件名(fname)
5.后缀名(ext)
6.不想获取的可以直接填入NULL进行忽略,比如我只想截取文件的后缀名,那么这个函数可以如下调用:_splitpath(path, NULL, NULL, NULL, ext);
7.其中ext必须是已经分配了内存空间的字符串指针,否则会出错(c语言的基本特性,我就不赘述了)
完整示例(Qt版,本人亲试):

 1 #include <stdlib.h>// 引入头文件
 2 
 3 MainWindow::MainWindow(QWidget *parent) // 函数使用
 4     : QMainWindow(parent)
 5     , ui(new Ui::MainWindow)
 6 {
 7     ui->setupUi(this);
 8 
 9     std::string sFilePath = "e:\a\b\1.jpg";
10     char sDirve[_MAX_DRIVE];
11     char sDir[_MAX_DIR];
12     char sFName[_MAX_FNAME];
13     char sFExt[_MAX_EXT];
14     _splitpath(sFilePath.c_str(), sDirve, sDir, sFName, sFExt);
15     qDebug() << QString::fromStdString(sFilePath);// "e:\a\b\1.jpg"
16     qDebug() << QString::fromStdString(sDirve);// "e:"
17     qDebug() << QString::fromStdString(sDir);// "\a\b\"
18     qDebug() << QString::fromStdString(sFName);// "1"
19     qDebug() << QString::fromStdString(sFExt);// ".jpg"
20 }

完整示例(C版,未测试):

 1 #include <stdlib.h> 
 2 #include <stdio.h> 
 3 void main( void ) 
 4 { 
 5     char path_buffer[_MAX_PATH]; 
 6     char drive[_MAX_DRIVE]; 
 7     char dir[_MAX_DIR]; 
 8     char fname[_MAX_FNAME]; 
 9     char ext[_MAX_EXT]; 
10     _makepath( path_buffer, "c", "\sample\crt\", "makepath", "c" ); 
11     printf( "Path created with _makepath: %s

", path_buffer ); 
12     _splitpath( path_buffer, drive, dir, fname, ext ); 
13     printf( "Path extracted with _splitpath:
" ); 
14     printf( " Drive: %s
", drive ); 
15     printf( " Dir: %s
", dir ); 
16     printf( " Filename: %s
", fname ); 
17     printf( " Ext: %s
", ext ); 
18 } 
19  
20 OutPut: 
21 Path created with _makepath: c:samplecrtmakepath.c 
22 Path extracted with _splitpath: 
23 Drive: c: 
24 Dir: samplecrt 
25 Filename: makepath 
26 Ext: .c


作者:疯狂Delphi
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

欢迎关注我,一起进步!扫描下方二维码即可加我

原文地址:https://www.cnblogs.com/FKdelphi/p/14442596.html