正在制作类似strcmp()的函数女巫在2d数组中找到一个名字 如果名称在那里它只返回0,否则返回-1,我的问题是当我使用这个代码时它返回0只是当我键入arrayOfnames的第一个元素时。
int my_strcmp(char arrayOfNames[5][20], char nameToFind[20])
{
int i,j;
for (j=0;j<5;j++)
{
for (i = 0; arrayOfNames[j][i] &&nameToFind[i]; ++i)
{
if (arrayOfNames[j][i] == nameToFind[i])
continue;
else
break;
}
if (arrayOfNames[j][i] == nameToFind[i])
return 0;
else //Set the 6th bit in both, then compare
return -1;
}
}
答案 0 :(得分:1)
假设您传递的数组是维度5,20,那么您在第一个for循环中出错:
for (j=0;j<=5;j++)
你越界的地方
for (j=0;j<5;j++)
是正确的循环
然而,此评论 //在两者中设置第6位,然后比较表示您的尺寸大于指定尺寸。
形成函数的更好方法是使用其他参数指定维度,并传递一个额外的数组来存储结果。