我是 C 语言编程的新手,我正在尝试创建一个程序,当用户输入他们的名字时,他们会被随机告知他们的性取向。然而,gcc 是错误的,因为我想我错过了一个;第 17 行是:if(strcmp(x, arrayNames[i] == 0));。我不太熟悉 strcmp();但我正在 K&R 中阅读它,只是无法理解它。以下是完整代码:
int main()
{
char *arrayNames[3]={"Jim", "Bob", "Dave"};
char *arrayOrient[3]={"straight", "gay", "bi"};
char x[100];
srand(time(NULL));
int size;
size = sizeof(arrayNames)/sizeof(arrayNames[0]);
int namesRand = rand() % size;
printf("Please enter your name: ");
scanf("%s", &x[0]);
int i;
for(i = 0; i < size; i++)
{
if(strcmp(x, arrayNames[i] == 0));
{
printf("Hello %s, your orientation is: %s", x, arrayOrient[namesRand]);
break;
}
else
{
printf("Invalid name!");
}
}
return 0;
}
使用 strcmp() 时的任何提示;将受到欢迎。
最佳答案
我认为您需要删除分号。 if then 语句中不需要分号。
关于c - 我需要在第 17 行的哪里放置额外的分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18424479/