2014-02-25 85 views
-1

我正在接受一個輸入字符串並將其放入一個名爲complement的數組中,以便我可以將每個元素與「A」,「G」,「 C「和」T「,並進行替換以產生DNA鏈的互補序列。我想利用這一點,但它不工作:如何檢查和替換數組中的元素C++

for(int i=0; i<x; i++){ 
    if(complement[i] == "T") 
complement[i] = "A"; 

我不能使用,因爲這會遍歷整個數組,共做替換替換功能,但我需要通過文字去性格讓AAGCT不會將A更改爲T,然後將T更改爲A.我在C++中執行此操作,但任何其他可以緩解這種情況的語言都可以。謝謝。

+3

你可以顯示你的數組聲明嗎? – juanchopanza

+0

與==比較字符串看起來很可疑。 – dornhege

+1

@dornhege,如果'complement'是一個'std :: string'數組,則不行。 – StoryTeller

回答

3

原因是你正在比較一個字符與一個字符串。 'A'!=「A」一個是字符,另一個是指針。 所以,你必須做的是

if (complement[i] == 'T') 
+0

謝謝!簡單的錯誤。 – user3352157

1

我猜complement聲明類似

char complement[] 

這就是說的char秒的陣列。如果確實如此,那麼

if(complement[i] == "T")... 

不會做你認爲的事情。

更重要的是,

complement[i] = "A"; 

這裏你分配一個C-字符串字面到char,這可能不會有好下場。

我建議刷上你的C,更具體地說,數組,char s,C字符串和指針。