gpt4 book ai didi

c - 如何在屏幕上显示搜索到的字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 02:12:04 26 4
gpt4 key购买 nike

所以,我要做的是让用户搜索奶酪并将其显示在屏幕上。我遇到了后者的麻烦。我似乎无法显示字符串,但我的代码仍在运行。这是我的代码:

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

char cheeses[][20] = {
"Cheddar",
"White Cheddar",
"Colby Jack",
"Gouda",
"Blue Cheese",
"Gorgonzola",
"Asiago",
"Limburger",
"Feta",
"Brie",
"Goat",
};

void find_cheese(const char *search_for)
{
int i;
for (i = 0; i < 5; i++) {
if (strstr(cheeses[i], search_for))
printf("Cheese %i: '%s'\n", i, cheeses[i]);
}
}

int main()
{
char search_for[20];
printf("Search for: ");
fgets(search_for, 20, stdin);
find_cheese(search_for);
return 0;
}

那么在这种情况下我该怎么办。我想要它,以便您可以输入“Lim”并让它显示 Limburger(将来它将能够显示有关奶酪的信息)。我将如何做到这一点?

最佳答案

看起来不错,但您只先搜索 5 个,而 Limburger 太接近列表的末尾了。

这种类型的代码最好用“哨兵”来解决,即用于表示列表已结束的特殊标记。对于字符串,您可以将数组表示为指向字符串的指针数组而不是固定大小的数组,然后使用 NULL 作为标记是很自然的。

数组会变成:

const char *cheeses[] = { "Cheddar", "White Cheddar", "Colby Jack",
/* ... rest of the cheeses ... */
NULL
};

然后你可以这样写搜索循环:

int i;

for( i = 0; cheeses[i] != NULL; ++i )
{
/* Test and handling code here, against cheeses[i] just like before. */
}

关于c - 如何在屏幕上显示搜索到的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12823859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com