[問題] 請教以雙重指標陣列存取特定字元用法

作者: jojojen (JJJ)   2018-06-17 21:36:44
開發平台(Platform): (Ex: Win10, Linux, ...)
Mac
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Xcode
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)

問題(Question):
分別用兩個指標指向兩個字串後,再用一個雙重指標陣列儲存兩個指標
請問如何以該雙重指標陣列,存取字串中的特定字元?
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
int main(int argc, const char * argv[]) {
char str1[] = "123";
char str2[] = "456";
char *ptr1 = str1;
char *ptr2 = str2;
char **pptr[2];
pptr[0] = ptr1;
pptr[1] = ptr2;
printf("%s\n", ptr2); // 456
printf("%s\n", pptr[1]); // 456
printf("%c\n", ptr2[1]); // 5
printf("%c\n", (pptr[1])[1]); // 空白 ,預期應該跟上行程式結果相同
}
補充說明(Supplement):
指標陣列跟雙重指標的意思都懂,但兩個合在一起使用就不太行了
想請問以上述的雙重指標陣列pptr該如何表示才能正確輸出字元'5'
麻煩各位大大了
作者: Feis (永遠睡不著 @@)   2018-06-17 21:56:00
你要的是 char *pptr[2]; 嗎?
作者: threesmaller (三小兒)   2018-06-17 21:57:00
先casting
作者: Feis (永遠睡不著 @@)   2018-06-17 22:02:00
那你要先想想為什麼要用雙重指標.char *pptr[2]; 再加個 char **ppptr = pptr; 應該是你要的

Links booklink

Contact Us: admin [ a t ] ucptt.com