我正在尝试从用空字符串初始化的2D数组中的一串字符串中查找MIN字符串"“。用户输入一些字符串,然后是strcpyied,然后下面的方法获得called.However,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" .Considering --数组的其余部分都充满了"“字符串,难道我的条件不能工作吗?因为它没有,所以它只被调用一次,然后最小值被设置为"“。
发布于 2018-11-09 19:11:48
您的问题是如果minC等于"",则跳过,但是您应该检查strings[i]
void determineMIN(char strings[][MAX])
{
char minC[MAX];
int i;
strcpy(minC, strings[0]);
for(i=1; i < MAX; i++)
{
if((strcmp(strings[i],"") != 0) && (strcmp(strings[i], minC) < 0))
{
printf("called\n");
strcpy(minC,strings[i]);
}
else
{
continue;
}
}
printf("MIN: %s\n",minC);
}https://stackoverflow.com/questions/53231747
复制相似问题