【发布时间】:2019-09-16 21:14:28
【问题描述】:
我有一个结构数组。我需要用户输入一个名称,然后搜索匹配的结构,然后输出该信息。我正在使用 strcmp 来比较字符串以进行匹配。因此,无论用户输入什么,整个列表都会打印出来。
我正在使用 for 循环循环遍历数组以查找匹配的名称。然后,我使用带有 strcmp 的 if 语句来比较字符串是否匹配。它不是只打印匹配的字符串,而是打印整个列表。
printf("Enter city name:\n");
scanf("%s", city);
//change city to lower case before comparison
for(i=0; i<strlen(city); i++)
city[i] = low(city[i]);
//fp = fopen(outfile, "w");
printf("The population density is:\n");
for(i=0;i<10;i++){
if ( strcmp(city, veg[i].name)) {
density = veg[i].population / veg[i].area;
printf("%s %.2f\n", veg[i].name, density );
}
}
用户应输入结构中的城市名称。循环应该遍历该结构,直到找到匹配项并输出城市名称和人口密度。但是,if 语句似乎没有做任何事情。打印整个列表,而不仅仅是匹配项。
【问题讨论】:
标签: c arrays string structure strcmp