linux c下,從路徑名中分離檔名

2022-08-13 18:18:20 字數 1781 閱讀 9698

首先介紹一些查詢字元的函式

標頭檔案:#include

strrchr() 函式用於查詢某字元在字串中最後一次出現的位置,其原型為:

char * strrchr(const char *str, int c);

【引數】str 為要查詢的字串,c 為要查詢的字元。

strrchr() 將會找出 str 字串中最後一次出現的字元 c 的位址,然後將該位址返回。

注意:字串 str 的結束標誌 nul 也會被納入檢索範圍,所以 str 的組後乙個字元也可以被定位。

【返回值】如果找到就返回該字元最後一次出現的位置,否則返回 null。

返回的位址是字串在記憶體中隨機分配的位址再加上你所搜尋的字元在字串位置。設字元在字串中首次出現的位置為 i,那麼返回的位址可以理解為 str + i。

標頭檔案:#include

strchr() 用來查詢某字元在字串中首次出現的位置,其原型為:

char * strchr (const char *str, int c);

【引數】str 為要查詢的字串,c 為要查詢的字元。

strchr() 將會找出 str 字串中第一次出現的字元 c 的位址,然後將該位址返回。

注意:字串 str 的結束標誌 nul 也會被納入檢索範圍,所以 str 的組後乙個字元也可以被定位。

【返回值】如果找到指定的字元則返回該字元所在位址,否則返回 null。

返回的位址是字串在記憶體中隨機分配的位址再加上你所搜尋的字元在字串位置。設字元在字串中首次出現的位置為 i,那麼返回的位址可以理解為 str + i。

strrchr()

函式。標頭檔案:#include

strstr()函式用來檢索子串在字串中首次出現的位置,其原型為:

char *strstr( char *str, char * substr );

【引數說明】str為要檢索的字串,substr為要檢索的子串。

【返回值】返回字串str中第一次出現子串substr的位址;如果沒有檢索到子串,則返回null。

例子1:

#include#includechar *find_file_name(const char *name)

name_start = strrchr(name, sep);

return (null == name_start)?name:(name_start + 1);

}int main(void)

; char*ptr,c='r';

char filepath="/home/linux_c/hello.c";

strcpy(string,"thisisastring");

ptr=strchr(string,c);

if(ptr)

printf("the character %c is at position:%d\n",c,ptr-string+1);

else

printf("the character was not found\n");

printf("\n\n filename is %s \n\n",find_file_name(filepath));

return 0;

}

例子2:

//windows下路徑測試

#include "stdio.h"

#include "string.h"

int main(void)

參考:

獲取模組檔案路徑名

獲取模組檔案路徑名 static bool getmodulepathname cstdstring strmodulepathname zeromemory szdrive,sizeof szdrive zeromemory szdir,sizeof szdir zeromemory szfile...

Python 獲取路徑名和檔名

os.path.dirname 和os.path.abspath 的區別 dirname是獲取的檔案所在目錄的路徑 abspath是獲取的檔案的絕對路徑 但是,當dirname括號內是相對路徑的時候,他返回是空,什麼都沒有 而如果abspath執行的話,如果檔案在當前目錄下有,他就返回,如果沒有,他...

Linux C 從指定路徑中獲取檔名

linux 或者 android 下可以通過 strrchr 函式從指定路徑中獲取檔名,這個函式的作用是 查詢字串中最後乙個出現的指定字元,它還有乙個對應函式 strchr 可用於 查詢字串第乙個出現的指定字元。使用這兩個函式前,需要 include 例 include include includ...