在C中创建类似strcmp()的函数

时间:2014-10-17 09:06:23

标签: c

正在制作类似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;
   }
}

1 个答案:

答案 0 :(得分:1)

假设您传递的数组是维度5,20,那么您在第一个for循环中出错:

for (j=0;j<=5;j++)

你越界的地方

for (j=0;j<5;j++)

是正确的循环

然而,此评论 //在两者中设置第6位,然后比较表示您的尺寸大于指定尺寸。

形成函数的更好方法是使用其他参数指定维度,并传递一个额外的数组来存储结果。