Я хочу сделать выборку массива на основе вектора истина-ложь:
array1 - ughIuytLikeretC
array2 - ffftfffttttffft
Так, чтобы array1 && array2
давало:
array3 - ILikeC
Что я сделал:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main() {
char source[16] = "ughIuytLikeretC\0";
bool mask[15] = {
false, false, false, true, false,
false, false, true, true, true,
true, false, false, false, true,
};
char *filtered;
filtered = malloc(16 * sizeof(char));
int j = 0;
int i;
for (i = 0; i < 15; i++) {
if (mask[i]) {
filtered[j] = source[i];
j += 1;
}
}
filtered[j] = 0;
printf("%s\n", filtered);
free(filtered);
}
Мои вопросы:
Это нормальный способ сделать это или есть более гладкий способ достижения этого?