字符数组和二维数组指针问题

标签 c pointers command-line-arguments

这是完成单词搜索作业的一部分。我必须使用命令行参数来搜索预定的二维数组。我只需要搜索水平(从左到右)、对角(从左上到右下)和垂直(从上到下)。 一旦我更好地理解了指针问题,我将编写 Diag 和 Vert。

我明白了

warning: comparison between pointer and integer

这发生在以下 if 语句中

if (argv[count] == g[i][j]){

为什么我会收到警告,以及我对指针的理解中缺少什么,导致我无法执行此操作。

我尝试了 *g 和 (int star)g 的不同变体,结果比警告更糟糕。

我需要有无警告的代码才能上交。

感谢您帮助新人。

#include <stdio.h>
#define ROW 3
#define COL 4
#define TRUE 1
#define FALSE 0

int checkHoriz(char *data, char *data2);

main(int argc, char *argv[]){
    int count, i, j, rowValue, colValue;
    char g[ROW][COL] = {{'a','b','c','d'},
                        {'d','c','b','a'},
                        {'x','y','z','d'}};

    count=1;
    if(argc>1){
        for(i=0; i<ROW; i++){
            for(j=0; j<COL; j++){
                if (argv[count] == g[i][j]){
                    rowValue = i;
                    colValue = j;
                    if(checkHoriz(argv[count],g[i][j]) ==TRUE){
                        printf("%s appears horizontally starting @ g[%d]{%d]. \n", argv[count], i,j);
                    }
                }
            }
        }
    }else{
        printf("No arguments were entered.\n");
    }
}

int checkHoriz(char *data, char *data2){
    int i = 0;
    while (data == data2 && data!=' ' && data2 != '\0'){
        data++;
        data2++;
    }
    if(data2 == '\0'){
        return 1;
    }else{
        return 0;
    }
}

最佳答案

argv是一个字符串数组;一个char**gchar 的数组数组;一个char[][] .

因此,argv[count]类型为char* (字符串)和 g[i][j]类型为char 。您正在将指针与单个 char 进行比较,整数类型。这就是警告告诉您的内容。

如果您想搜索charg argv[count]里面,那么您将需要取消引用 argv[count]更进一步,与个人合作char s 的范围为 argv[count][0]argv[count][strlen(argv[count]) - 1] .

关于字符数组和二维数组指针问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9552176/

相关文章:

c - 非特权用户运行 C/asm 程序会对 Linux 造成什么危害?

c++ - 取消引用指针(并返回它)的问题

c++ - 二维指针数组 C++

C通过指针返回结构

python - 将自己的参数传递给 ryu 代理应用程序

bash - 在 bash 中,如何设置变量来包含可变数量的命令行参数?

c - 取一个数字并输出其英文单词的算法

c - 在 gtk 中显示来自互联网的图像

c - 为什么 struct addrinfo 仅在定义了 __USE_XOPEN2K 时才定义?

php - 命令行 MySQL 脚本