作者kikiqqp (喵食罐头)
看板C_and_CPP
标题C语言下二维字元阵列任意位置取代
时间Tue Feb 13 15:41:52 2018
事先宣告了一个二维阵列并给予初值如下
ChArry[4][16] = {{"0123456789ABCDEF"},
{"GGTGTTATTTCTTCCG"},
{"TTCCGGATGTAAATTT"},
{"TGATGTATGTTATCCA"}};
其中想将字串 CharTest1[] = {"AT"}; 和
CharTest1[] = {"GG"};
分别取代 ChArry[2][13]和
ChArry[3][9]位置
使其变为
ChArry[4][16] = {{"0123456789ABCDEF"},
{"GGTGTTATTTCTT
ATG"},
{"TTCCGGATG
GGAATTT"},
{"TGATGTATGTTATCCA"}};
请问何种作法比较适当呢?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 49.158.70.171
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1518507716.A.BFD.html
1F:→ MOONRAKER: 是要多当 当当当当 02/13 15:57
2F:→ MOONRAKER: 位置长度通通已知 用回圈直接抄进去 这样最当 02/13 15:58
3F:推 sunev: 你知道什麽是当当当当当当?? 02/13 16:09
※ 编辑: kikiqqp (49.158.70.171), 02/13/2018 16:14:44
4F:→ stupid0319: ChArry[2][13] = 'A'; ChArry[2][14] = 'T'; 02/13 16:34
5F:→ stupid0319: ChArry[3][9] = 'G'; ChArry[3][10] = 'G'; 02/13 16:35
6F:→ MOONRAKER: 当当当当当当当当当就是ONLY YOU~~SEGMENTATION FAULT 02/13 17:45
7F:推 ggyyd: ATCG 这不是DNA吗 02/13 18:03
8F:→ 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
9F:推 TWkobe: LCS? 02/14 11:12
10F:推 LPH66: 跟 LCS 没有关系, 就单纯只是等长字串取代而已 02/14 11:42
11F:→ LPH66: 原 PO 要注意你这是字串, sizeof 求长度可能非你所愿 02/14 11:43
12F:→ LPH66: 然後既然有想法了, 你的问题是? 想问有没有更好的做法吗? 02/14 11:46
13F:→ kikiqqp: 是的,想知道有没有更好的方式 02/14 12:28
※ 编辑: kikiqqp (49.158.70.171), 02/14/2018 12:58:09
14F:→ outofyou: 往编译器优化的方向想?更好是指执行更快or更好读? 02/14 21:28
15F:→ MOONRAKER: sizeof()是compile-time macro 用在function里面 02/19 22:04
16F:→ MOONRAKER: 你最好小心不会有意外的[爆]效果 02/19 22:05
17F:→ MOONRAKER: 另一个问题是你这套到底用过几次 真的有用过吗 02/19 22:06
18F:推 neigence: memcpy 02/21 11:51