如何在C/ C 中比较两个char的两个2D阵列

How to compare two 2d arrays of char in C/ C++

本文关键字:两个 char 2D 阵列 比较      更新时间:2023-10-16

我正在将两个char的两个2D数组传递到一个函数中,如果数组相等,则会返回1,否则为0。数组的大小为[4] [4],但是当我尝试通过数组迭代时,我会收到一个错误。

int checkIfWin(char** array, char** array2){
int winner = 0;
for(int i = 0; i < 4; i++){
    if(strcmp(array2[i], array[i])==0){
        winner = 1;
    }
    else
        winner = 0;
}
return winner;
}

更新:

我在strcmp时得到redrorn的原因是因为我没有malloc第二2D数组。

char[]char *不同,第一个将值 ''放在数组末尾,而不是第二个。

功能 strcmp 将比较元素,直到找到值''为止,因为该任务更好地将元素与元素进行比较,如果您发现差异自动返回。

> 。
int checkIfWin(char** array, char** array2){
    for(int i = 0; i < 4; ++i){
        for (int j = 0; j < 4; ++j){
            if(array2[i][j] != array[i][j]){
                return 0;
            }
        }
    }
    return 1;
}

这是使用strncmp((的解决方案:

   int winner = 1, i;
   for(i = 0; i < 4; i++){
      if((strncmp(array2[i], array[i], 4)) != 0){
         winner = 0;
         break;
      }
   }
 return winner;