看板 C_and_CPP 關於我們 聯絡資訊
事先宣告了一個二維陣列並給予初值如下 ChArry[4][16] = {{"0123456789ABCDEF"}, {"GGTGTTATTTCTTCCG"}, {"TTCCGGATGTAAATTT"}, {"TGATGTATGTTATCCA"}}; 其中想將字串 CharTest1[] = {"AT"}; 和 CharTest1[] = {"GG"}; 分別取代 ChArry[2][13]和 ChArry[3][9]位置 使其變為 ChArry[4][16] = {{"0123456789ABCDEF"}, {"GGTGTTATTTCTTATG"}, {"TTCCGGATGGGAATTT"}, {"TGATGTATGTTATCCA"}}; 請問何種作法比較適當呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.158.70.171 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1518507716.A.BFD.html
MOONRAKER: 是要多當 當當當當 02/13 15:57
MOONRAKER: 位置長度通通已知 用迴圈直接抄進去 這樣最當 02/13 15:58
sunev: 你知道什麼是當當當當當當?? 02/13 16:09
※ 編輯: kikiqqp (49.158.70.171), 02/13/2018 16:14:44
stupid0319: ChArry[2][13] = 'A'; ChArry[2][14] = 'T'; 02/13 16:34
stupid0319: ChArry[3][9] = 'G'; ChArry[3][10] = 'G'; 02/13 16:35
MOONRAKER: 當當當當當當當當當就是ONLY YOU~~SEGMENTATION FAULT 02/13 17:45
ggyyd: ATCG 這不是DNA嗎 02/13 18:03
wtchen: 自身想法呢? 02/13 18:15
我目前作法是 #ifndef MX_SIZE #define MX_SIZE(var) sizeof(var)/sizeof(var[0]) #endif x = 2, y = 13; for(int i = y; i < (MX_SIZE(CharTest1) + y); i++) { ChArry[x][i] = CharTest1[i - y]; } 包成一個 function
TWkobe: LCS? 02/14 11:12
LPH66: 跟 LCS 沒有關係, 就單純只是等長字串取代而已 02/14 11:42
LPH66: 原 PO 要注意你這是字串, sizeof 求長度可能非你所願 02/14 11:43
LPH66: 然後既然有想法了, 你的問題是? 想問有沒有更好的做法嗎? 02/14 11:46
kikiqqp: 是的,想知道有沒有更好的方式 02/14 12:28
※ 編輯: kikiqqp (49.158.70.171), 02/14/2018 12:58:09
outofyou: 往編譯器優化的方向想?更好是指執行更快or更好讀? 02/14 21:28
MOONRAKER: sizeof()是compile-time macro 用在function裡面 02/19 22:04
MOONRAKER: 你最好小心不會有意外的[爆]效果 02/19 22:05
MOONRAKER: 另一個問題是你這套到底用過幾次 真的有用過嗎 02/19 22:06
neigence: memcpy 02/21 11:51