我正在接受一串输入并将其放入一个名为complement的数组中,这样我就可以将每个元素与“A”,“G”,“C”和“T”进行比较并替换为产生DNA链的互补物。我试图使用它,但它不起作用:
for(int i=0; i<x; i++){
if(complement[i] == "T")
complement[i] = "A";
我不能使用替换函数,因为它遍历整个数组并完全替换,但我需要逐个字符,以便AAGCT不会将A更改为T然后将T更改为A.我是在C ++中这样做,但任何其他可以缓解这种情况的语言都可以。谢谢。
答案 0 :(得分:3)
原因是您正在将字符与字符串进行比较。 'A'!=“A”一个是char,另一个是指针。 所以你需要做的是
if (complement[i] == 'T')
答案 1 :(得分:1)
我猜测complement
被宣布为
char complement[]
这就是char
的数组。如果确实如此,那么
if(complement[i] == "T")...
不符合您的想法。
更重要的是,
complement[i] = "A";
这里你要为char
分配一个C字符串文字,这可能不会很好。
我建议刷新你的C,更具体地来说,数组,char
,C字符串和指针。