你好。我想制作一本简单的英语 - 土耳其语词典。这是我的作业。我必须用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;
}
答案 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;
}