char * res [strlen (param_1) + strlen (param_2)]; // выделить достаточно длинную строку
Вы не можете выделить динамическую c длину в стеке. Вам нужно выделить его в куче, например:
char *res = malloc(strlen(param_1) + strlen(param_2)+1);
(Примечание: добавьте дополнительный байт для нулевого терминатора)
Вам необходимо установить буфер на нули, чтобы можно было использовать strchr позже:
memset(res, 0, strlen(param_1) + strlen(param_2)+1);
if (strchr (* res, param_1 [i]) == NULL) {// это проверяет наличие дублирует res [i] = param_1 [i]; }
strchr должен принимать res
, а не *res
. Присвоение индексу i
не сработает, так как вам нужно добавить новый символ в конец строки результата.
int j=0;
for(int i = 0 ; i < strlen(param_1);i++){
if(strchr(res,param_1[i]) == NULL){// this checks for duplicates
res[j] = param_1[i];
j++;
}
}
for(i = 0 ; i < strlen(param_2);i++){
if (strchr(res, param_2[i])== NULL){//this checks for duplicates too
res[j] = param_2[i];
j++;
}
}
printf("%s\n", res);
return res;