[問題] 利用pointer取substring
開發平台(Platform): (Ex: Win10, Linux, ...)
Win 10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Leetcode
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
如何使用pointer去取substring
餵入的資料(Input):
無
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
https://pastebin.com/viUgV0FU
補充說明(Supplement):
想達成的目的是:
有一個變數為 char *b="1234567";
想利用pointer去取到"4567"這樣,
雖然pointer的觀念不是很熟悉,
但大概知道,array的用法就是起頭的pointer加上bias,
一開始是想說,把char *a這個變數指到b[3]的位址,
然後直接printf出這個a,但ㄧ直出錯
找了找網路上的方法,都是用一格一格去複製到a的,
但我覺得這樣效率不好,因為我想做的題目若這樣做的話,時間複雜度會提高很多,
如果直接用pointer去指,可能會快速很多。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.23.154.216 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1614053845.A.A52.html
→
02/23 12:20,
3年前
, 1F
02/23 12:20, 1F
那個程式碼有些地方是亂打的XDD 不好意思沒有刪乾淨,
我剛剛試了一下,這樣是可以實作出我想做的:
const char b[] = "1234567";
const char *a;
a = &b[3];
printf("%s",a);
看來b的宣告是個關鍵。有人可以跟我說為什麼嗎QQ 我C苦手
※ 編輯: ericerix (211.23.154.216 臺灣), 02/23/2021 12:21:55
→
02/23 12:24,
3年前
, 2F
02/23 12:24, 2F
→
02/23 12:25,
3年前
, 3F
02/23 12:25, 3F
→
02/23 13:27,
3年前
, 4F
02/23 13:27, 4F
推
02/23 15:41,
3年前
, 5F
02/23 15:41, 5F
推
02/23 16:02,
3年前
, 6F
02/23 16:02, 6F
→
02/23 16:03,
3年前
, 7F
02/23 16:03, 7F
推
02/23 18:19,
3年前
, 8F
02/23 18:19, 8F
推
02/24 00:49,
3年前
, 9F
02/24 00:49, 9F
推
02/24 08:45,
3年前
, 10F
02/24 08:45, 10F
已經解決了,昨天莫名其妙都搞不出解答
完整一點:
char *s = "1234567";
printf("%s",s); // "1234567"
s = &s[3];
printf("%s",s); // "4567"
是可以解決的
謝謝大家!
※ 編輯: ericerix (140.115.50.48 臺灣), 02/24/2021 09:29:08
→
02/24 12:17,
3年前
, 11F
02/24 12:17, 11F
怎麼說呢? 不過我似乎把陣列當link list使用了..
※ 編輯: ericerix (140.115.53.191 臺灣), 02/24/2021 13:34:26
推
02/24 16:59,
3年前
, 12F
02/24 16:59, 12F
推
02/24 23:46,
3年前
, 13F
02/24 23:46, 13F
→
02/24 23:46,
3年前
, 14F
02/24 23:46, 14F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章