5.分離字串路徑的方法
處理檔案的程式可能要分析檔名。這種演算法要進行字串處理。檔案可以
由路徑名指定,路徑名包括由分隔符"/"分割的名稱集。最後乙個"/"前的名稱序列
稱為路徑。最後乙個名稱是檔名,還可能包括副檔名。
路徑名 /class/programs/testfile.cpp
路徑 /class/programs/
檔名 testfile.cpp
副檔名 cpp
為了分析檔名,我們從鍵盤讀入完整的路徑名,並輸出路徑和檔名。
如果檔名具有副檔名"cpp",則在建立可執行檔名時,將用"exe"替代副檔名"cpp".
下面是程式結構的輪廓,以及如何使用字串函式的說明:
1.輸入檔名,使用函式find_last_of()在字串中搜尋最後乙個出現的"/"。這個字元
確定了路徑的結尾和檔名的開始。
2。路徑是由最後乙個"/"前所有字串組成的子串。檔名是最後乙個"/"後的
所有字元。使用最後乙個"/"的位置和substr()提取出路徑和檔名。
3.副檔名是檔名中最好乙個"."後的字串。呼叫find_last_of()搜尋最後乙個匹配,
則複製檔名,刪除當前副檔名,並新增新的副檔名"exe"。 輸出產生的可執行檔名。
// 檔案prg1_3.cpp
// 此程式提示使用者輸入檔案的路徑
// 它使用string類操作來識別並輸出
// 路徑名和檔名。如果檔名有
// 副檔名"cpp",則建立並輸出
// 可執行檔案的名稱,其擴充套件名為"exe",替換
// 副檔名"cpp"
// wj.cpp : 定義控制台應用程式的入口點。
//#i nclude "stdafx.h"
#i nclude#i ncludeusing namespace std;
int main()
return 0;
}
輸出結果:
第1次允許結果:
enter the path name: /class/programs/testfile
path: /class/programs
filename: testfile
第2次允許結果:
enter the path name: programs/strings/filedemp.cpp
path: programs/strings
filename: filedemo.cpp
executable: filedemo.exe
第3次允許結果:
enter the path name: /program.cpp
path:
filename: program.cpp
executable: program.exe
char szfilename [max_path];
::getmodulefilename(g_hinstdll, szfilename, max_path);
C 獲取路徑
一 應用程式 獲取當前程序的完整路徑,包含檔名 程序名 string str this.gettype assembly.location result x exe exe檔案所在的目錄 exe檔名 獲取新的 process 元件並將其與當前活動的程序關聯的主模組的完整路徑,包含檔名 程序名 str...
C 獲取路徑
獲取到bin目錄的下層路徑 bin debug 獲取到bin目錄 bin debug string dd system.environment.currentdirectory string ee system.io.directory.getcurrentdirectory 獲取程式.exe wi...
c 獲取檔案路徑
一 獲取當前檔案的路徑 1.system.diagnostics.process.getcurrentprocess mainmodule.filename 獲取模組的完整路徑,包括檔名。2.system.environment.currentdirectory 獲取和設定當前目錄 該程序從中啟動的...