Несколько проблем:
1) Для сравнения строк нужно использовать strcmp()
или реализовать свой собственный. ==
не может использоваться для сравнения строк и всегда будет возвращать false. Пример
char *str1="str";
char *str2="str";
if (str1==str2){
printf("== returns true.\n");
}
if (strcmp(str1,str2)){
printf("strcmp() returns true.\n");
}
Вывод
strcmp() returns true.
2) Нельзя возвращать указатель на локальную переменную. В этом случае return empty
недопустимо.
3) Чтобы вернуть пустую строку, выполните команду
char *emptystr;
emptystr=malloc(sizeof(char));
*emptystr='\0';
return emptystr;
Обратите внимание, что здесь используется malloc
вместо неправильного версия
char emptystr[1];
, которая вызывает возврат указателя на локальную переменную.