简体   繁体   English

如何比较 C 中的 char 和 char *

[英]How to compare char and char * in C

I'm not sure why this isn't working, it doesn't print anything.我不确定为什么这不起作用,它不打印任何东西。 csvArry has 3 elements in it and capList has 4 elements. csvArry 有 3 个元素,而 capList 有 4 个元素。 I want to search capList to see if there is an element in it that matches an element in csvArray.我想搜索 capList 以查看其中是否有与 csvArray 中的元素匹配的元素。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>



int main(int argc, char *argv[]) {


    char *csvArray[] = {"1000", "CAP_SYS_ADMIN", "CAP_SYS_RAW"};
    char *capList[] = {"CAP_SYS_SETFCAP", "CAP_SYS_SETPCAP", "CAP_SYS_ADMIN", "CAP_SYS_RAW"};

    int i = 0;
    int j;
    while(i<3){
          for(j=0;j<4;j++){
              if(strcmp(csvArray[i],capList[j]) == 0){
                        printf("Match");
              }
          }
          i++;
    }

  return 0;
}


There you go:你有 go:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{

    char *csvArray[] = {"1000", "CAP_SYS_ADMIN", "CAP_SYS_RAW"};
    char *capList[] = {"CAP_SYS_SETFCAP", "CAP_SYS_SETPCAP", "CAP_SYS_ADMIN", "CAP_SYS_RAW"};

    int size = sizeof(csvArray) / sizeof(csvArray[0]);
    int sizeOfList = sizeof(capList) / sizeof(capList[0]);

    for (int i = 0; i < size; i++) {
        for (int j = 0; j < sizeOfList; j++) {
            if (strcmp(csvArray[i], capList[j]) == 0) {
                printf("%s Match\n", csvArray[i]);
            }
        }
    }

    return 0;
}

This program tries to find which elements are common to both and it prints which are common too.该程序试图找出两者共同的元素,并打印出共同的元素。

Output Output

CAP_SYS_ADMIN Match
CAP_SYS_RAW Match

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM