在字符数组中查找最小字符串
finding the min string in an array of chars
我试图从用空字符串“”初始化的二维数组中的一堆字符串中找到 MIN 字符串。用户输入一些字符串,然后 strcpy
ied 然后下面的方法得到 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"
。考虑到数组的其余部分填充了“”字符串应该'我的条件不行吗?因为它不只被调用一次然后最小值设置为“”。
你的问题是,如果 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);
}
我试图从用空字符串“”初始化的二维数组中的一堆字符串中找到 MIN 字符串。用户输入一些字符串,然后 strcpy
ied 然后下面的方法得到 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"
。考虑到数组的其余部分填充了“”字符串应该'我的条件不行吗?因为它不只被调用一次然后最小值设置为“”。
你的问题是,如果 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);
}