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

看板C_and_CPP (C/C++)作者 (JJJ)時間7年前 (2018/06/17 21:36), 7年前編輯推噓0(004)
留言4則, 2人參與, 7年前最新討論串1/1
開發平台(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' 麻煩各位大大了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.83.146.68 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1529242606.A.B99.html

06/17 21:56, 7年前 , 1F
你要的是 char *pptr[2]; 嗎?
06/17 21:56, 1F
這個做法試了可以 不過主要還是想弄懂如果用的寫法雙重指標要怎做

06/17 21:57, 7年前 , 2F
先casting
06/17 21:57, 2F
好 我查查看 ※ 編輯: jojojen (111.83.146.68), 06/17/2018 22:01:03

06/17 22:02, 7年前 , 3F
那你要先想想為什麼要用雙重指標.
06/17 22:02, 3F

06/17 22:04, 7年前 , 4F
char *pptr[2]; 再加個 char **ppptr = pptr; 應該是你要的
06/17 22:04, 4F
喔喔 試了沒錯 謝謝大大 本來雙重指標陣列是想用來存拆分後的字串像下面這樣 char buf[MAXSIZE]; char *pbuf = buf; char **ops[MAXSIZE]; char *del = " "; split(ops, pbuf, del); 不過剛剛經提醒發現 好像其實不需要.... 我的寫法太冗了 我再修改 謝謝大大 ※ 編輯: jojojen (111.83.146.68), 06/17/2018 22:12:03 ※ 編輯: jojojen (111.83.146.68), 06/17/2018 22:14:07
文章代碼(AID): #1R9cFkkP (C_and_CPP)
文章代碼(AID): #1R9cFkkP (C_and_CPP)