2013-06-23 41 views
0

所以我想要做的是一個函數,我收到一個char line[ ](這個字符串是從fgets獲得一個文件在其他函數中),我想要的是計數某個標記出現在字符串中的次數。問題是,它總是給我錯誤Comparison between pointer and integer,我不知道指針在我的代碼中。函數獲取字符並將其與令牌比較

這裏是我的代碼:

int validaString(char line[ ]){ 
    int i=0, j=0; 
    while (line[i] != "\n"){ 
     if(line[i] == "-" || line[i]== " ") 
      j++; 
     i++; 
    } 
    if(j==4) 
     return 0; 
    else 
     return 1; 
} 
+2

你的代碼中有一個未定義的行爲(當它被修復時):如果文本中沒有換行符會怎麼樣?如果文件中的最後一行不以換行符結尾,或者您提供給「fgets」的緩衝區不足以包含整行,就會發生這種情況。 –

+0

我雖然關於,但txt包含總是相同的行類型和我的緩衝區動態分配 –

回答

9

"\n"是一個字符串。使用'\n'具有字符文字。 "-"" "相同。

+0

C不直接比較字符串...因此strcmp()。你可以比較字符,因此'\ n'。你也可能會發現strpbk()很有趣。 – Gilbert

相關問題