[問題] C語言下二維字元陣列任意位置取代

看板C_and_CPP作者 (喵食罐頭)時間7年前發表 (2018/02/13 07:41), 7年前編輯推噓5(5013)
留言18則, 10人參與, 7年前最新討論串1/1
事先宣告了一個二維陣列並給予初值如下 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

02/13 15:57, 7年前 , 1F
是要多當 當當當當
02/13 15:57, 1F

02/13 15:58, 7年前 , 2F
位置長度通通已知 用迴圈直接抄進去 這樣最當
02/13 15:58, 2F

02/13 16:09, 7年前 , 3F
你知道什麼是當當當當當當??
02/13 16:09, 3F
※ 編輯: kikiqqp (49.158.70.171), 02/13/2018 16:14:44

02/13 16:34, 7年前 , 4F
ChArry[2][13] = 'A'; ChArry[2][14] = 'T';
02/13 16:34, 4F

02/13 16:35, 7年前 , 5F
ChArry[3][9] = 'G'; ChArry[3][10] = 'G';
02/13 16:35, 5F

02/13 17:45, 7年前 , 6F
當當當當當當當當當就是ONLY YOU~~SEGMENTATION FAULT
02/13 17:45, 6F

02/13 18:03, 7年前 , 7F
ATCG 這不是DNA嗎
02/13 18:03, 7F

02/13 18:15, 7年前 , 8F
自身想法呢?
02/13 18:15, 8F
我目前作法是 #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

02/14 11:12, 7年前 , 9F
LCS?
02/14 11:12, 9F

02/14 11:42, 7年前 , 10F
跟 LCS 沒有關係, 就單純只是等長字串取代而已
02/14 11:42, 10F

02/14 11:43, 7年前 , 11F
原 PO 要注意你這是字串, sizeof 求長度可能非你所願
02/14 11:43, 11F

02/14 11:46, 7年前 , 12F
然後既然有想法了, 你的問題是? 想問有沒有更好的做法嗎?
02/14 11:46, 12F

02/14 12:28, 7年前 , 13F
是的,想知道有沒有更好的方式
02/14 12:28, 13F
※ 編輯: kikiqqp (49.158.70.171), 02/14/2018 12:58:09

02/14 21:28, 7年前 , 14F
往編譯器優化的方向想?更好是指執行更快or更好讀?
02/14 21:28, 14F

02/19 22:04, 7年前 , 15F
sizeof()是compile-time macro 用在function裡面
02/19 22:04, 15F

02/19 22:05, 7年前 , 16F
你最好小心不會有意外的[爆]效果
02/19 22:05, 16F

02/19 22:06, 7年前 , 17F
另一個問題是你這套到底用過幾次 真的有用過嗎
02/19 22:06, 17F

02/21 11:51, 7年前 , 18F
memcpy
02/21 11:51, 18F
文章代碼(AID): #1QWfR4lz (C_and_CPP)