Я хочу сравнить второй элемент массива со строкой, чтобы увидеть, соответствуют ли они. Я пытаюсь использовать memcmp для этого, но это дает мне ошибку. Это правильный способ приблизиться к этому, или я завершаю? Прошу прощения, я новичок в C.Сравнение массива 2d char с массивом 1d char в c
char array[5][32] = {"foo","boo","moo"};
char string[32] = "boo";
int ret;
ret = memcmp(array[1][32], string[32], 4) //4 because i don't want it too match 'book'
if (ret == 0) {
printf("equal");
} else {
printf("not");
}
Потерять [32] по обоим аргументам в 'memcmp'. Это разыменование последнего символа в строке C. –
вместо того, чтобы указывать на 32-й байт вашего массива, укажите на это так: 'ret = memcmp (array [1] [0], string [0], 4)' – Evert
'strcmp (array [1], string) 'будет казаться более уместным. – WhozCraig