Я столкнулся с проблемой с парой строк. В нижней части моей первой функции я тестирую длину обеих строк, и даже если поискForLength должен быть меньше половины размера searchLength, они имеют одинаковую длину. Что здесь происходит?две строки должны быть разной длины, но считаются одинаковой длиной
Вот код:
#include <stdio.h>
#include <stdbool.h>
bool findString(const char searched[], const char searchingFor[]) {
int i, j, k = 0, searchedLength = sizeof(searched)/sizeof(searched[0]), searchingForLength = sizeof(searchingFor)/sizeof(searchingFor[0]);
bool in = false;
for (i = 0; i < searchedLength; i++) {
for (j = 0; j < searchingForLength; j++) {
if (searched[i] == searchingFor[j]) {
k++;
if (k == searchingForLength) {
in = true;
}
}
}
}
printf("%d\n", k);
printf("%d\n",searchingForLength);
printf("%d\n",searchedLength);
if (in == true) {
printf("Yes\n");
}
else {
printf("No\n");
}
return in;
}
int main (void) {
const char searched[] = { 'I', ' ', 'l', 'i', 'k', 'e', ' ', 'p', 'i', 'e' };
const char searchingFor[] = { 'l', 'i', 'k', 'e' };
findString(searched, searchingFor);
return 0;
}
Могу ли я предложить вам выборочно 's/string/array /' в тех местах, где вы ссылаетесь на строку, которая не является строкой? Таким образом, этот ответ будет иметь гораздо больше смысла. – Sebivor