【发布时间】:2018-11-09 18:53:26
【问题描述】:
我试图从用空字符串“”初始化的二维数组中的一堆字符串中找到 MIN 字符串。用户输入一些字符串,然后是strcpyied,然后调用以下方法。但是 if 语句无法按预期工作:
void determineMIN(char strings[][MAX]) {
char minC[MAX] = "Z"; // Highest alphabetic uppercase char in ASCII(value: 090)
int i;
for(i=0; i < MAX; i++) {
if((strcmp(minC,strings[i]) >= 0) && (strcmp(minC,"") != 0)) {
printf("called\n");
strcpy(minC,strings[i]);
} else { // < 0
continue;
}
}
printf("MIN: %s\n",minC);
}
以这种情况为例:用户输入以下3个字符串"cat"、"dog"和"sheep"。考虑到数组的其余部分填充了“”字符串,我的条件不应该工作吗?因为它不会只被调用一次,然后将最小值设置为“”。
【问题讨论】:
-
是的,你说得对,我忘了!在 () 前面。我可能在某个地方还有另一个错误,因为它将绵羊打印为 MIN。我再看一遍
-
将
(strcmp(minC,"") != 0)更改为(strcmp(strings[i],"") != 0),因为如果strings[i]是""而不是minC,您想跳过。