2017-09-13 42 views
0

我遇到了麻煩,我的代碼是新的C.我只是試圖讓這個程序打印字符串[j] =「a」的索引。如果我拿出if語句,程序將完美打印出所有的索引位置,但它不適用於if語句。在其他語言中這很簡單。你如何在C中實現這一點?如何找到一個字符中的一個字符C語言

#include <stdio.h> 
#include <string.h> 

int main(int argc, char **argv) { 
    char string[100] = "Smart Guy"; 

    for(int j = 0; j < strlen(string); j++) { 
     if (string[j] == "a") { 
      printf("%d %c\n", j, string[j]); 
     } 
    } 

    return 0; 
} 
+3

你當你編譯得到警告?你應該:'「在雙引號中的」''是一個'char *'類型的字符串文字。你想單引號中的單個字符:''a''。 –

+1

@TravisAlexanderTerrell好的編譯器會警告像'string [j] ==「a」'這樣的問題。節省時間,啓用所有編譯器警告。 – chux

回答

4

您可以更改

if (string[j] == "a") { 
    printf("%d %c\n", j, string[j]); 
} 

if (string[j] == 'a') { 
    printf("%d %c\n", j, string[j]); 
} 
+1

downvote的原因是什麼? – nullpointer

+0

是啊爲什麼這個問題被低估,我做了研究,沒有找到我的答案。我沒有意識到單引號和雙引號之間的區別,這在其他語言中並不是我所遇到的,單引號和雙引號在某種程度上可以互換。 –

相關問題