2017-09-13 44 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

是啊为什么这个问题被低估,我做了研究,没有找到我的答案。我没有意识到单引号和双引号之间的区别,这在其他语言中并不是我所遇到的,单引号和双引号在某种程度上可以互换。 –

相关问题