检查两个单词是否相等?(C)

时间:2016-11-22 22:22:44

标签: c

你好。我想制作一本简单的英语 - 土耳其语词典。这是我的作业。我必须用C编码,但我根本不知道C.为什么以下代码不起作用?

#include<stdio.h>
int main()
{
    int i;

    char word_array[10][20] ={"araba","car","kalem","pencil","derin","deep","mavi","blue","el","hand" };
    //char arama[5] = {'d','e','r','i','n'};
    char search[10] = "araba ";


    for(i = 0 ; i < 10; i=i+2){
        if(word_array[i] == search){
            printf("i found: %s\n",i);
        }
        else{
            printf("The word isnt in the array. %s\n",word_array[i],search);
        }
    }

    return 0;
}

2 个答案:

答案 0 :(得分:0)

查看下面的代码。它解决了您的代码中的一些问题。

    #include<stdio.h>
    #include <string.h>
    int main()
    {
        int i;

        char word_array[10][20] ={"araba","car","kalem","pencil","derin","deep","mavi","blue","el","hand" };
        char search[10] = "araba";


        for(i = 0 ; i < 10; i++){
            if(strcmp(word_array[i],search) == 0){
                printf("i found: %s\n",i);
                break;
            }
       }

       if(i>=10) {
            printf("The word %s isnt in the array.\n",search);
        }

        return 0;
    }

答案 1 :(得分:0)

#include<stdio.h>
#include <string.h> // <-------- Include header containing strcmp()
int main()
{
    int i;

    char word_array[10][20] = { "araba", "car", "kalem", "pencil", "derin", "deep", "mavi", "blue", "el", "hand" };
    //char arama[5] = {'d','e','r','i','n'};
    char search[10] = "araba"; // <-------- Remove space to have the same string.


    for (i = 0; i < 10; i = i + 1){ // <-------- Search each word in array as opposed to each second word.
        if (strcmp(word_array[i], search) == 0){ // <-------- Use proper C-string comparison.
            printf("%i found: %s\n", i, word_array[i]); // <-------- Correct specifier "i" to "%i" and add the actual found word to output for "%s"
        }
        else{
            printf("The word isnt in the array. %s\n", word_array[i], search);
        }
    }

    return 0;
}

另见:How do I properly compare strings?