夥計們我正在使用C++來構建一個shell程序,這裏是我得到當前用戶名和工作地址的代碼,但是如果它包含根目錄,我想編輯它的地址,包含的部分將被替換爲「〜 「,但我不知道該怎麼做..如何查找和替換char數組內存儲的字符串?
我發現一個想法,這是一種方式左移幾個大小的pw_dir的方式..但如何做到這一點?
請幫幫我。
char hostname[32];
char present_addr[255];
struct passwd *getuser;
void default_output() {
getuser = getpwuid(getuid());
gethostname(hostname, sizeof(hostname));
getcwd(present_addr, sizeof(present_addr));
if (strcmp(present_addr, getuser->pw_dir) == 0) {
cout << "[CYHshell]" << getuser->pw_name << "@" << hostname << ":" << "~$ ";
}
else
cout << "[CYHshell]" << getuser->pw_name << "@" << hostname << ":" << present_addr << "$ ";
}
嘛,比如應該是這樣的:
/用戶/ howechen /圖書館/緩存/ clion10/cmake的/生成/ 374e429/374e429 /調試$
這是當前工作我的程序的目錄,並應固定
~/Library/Caches/clion10/cmake/generated/374e429/374e429/Debug$
原因
/Users/howechen/
是我的根目錄
向我們展示一個示例輸入和所需的輸出。 – zoska
移位僅適用於以字節爲單位的位。字符串不能像這樣處理(你需要使用函數族'str *') – zoska
當然,我編輯了我的問題。 @zoska –