我是C编程的新手,在创建字符串列表和搜索特定元素时遇到一些困难。

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

# define MAX 6
int main(){
    char word[MAX];
    char x[MAX][20];
    int i;

    strcpy(x[0], "One");
    strcpy(x[1], "Two");
    strcpy(x[2], "Three");
    strcpy(x[3], "Four");
    strcpy(x[4], "Five");
    strcpy(x[5], "Six");
    printf("%s", "Search:");
    scanf("%s", word);

    for (i=0; i<6; i++) {
        if (x[i] == word) {
            printf("%s", "Found a match!");
        }
    }

    return 0;
}

它永远不会执行if块中存在的语句(即printf(“找到匹配项!”))。知道为什么它不执行上述语句吗?
谢谢!

最佳答案


if(strcmp(x[i],word) == 0)
printf("Found match\n");
==不能在执行过程中用于比较字符串。

这仅比较指针而不是字符串

关于c - 在2D数组中搜索元素,C编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27692605/

10-13 08:11