I tried to replace a target word in sentence to another word but it doesn't work. Can you please help me with where I got wrong? It has a problem with strstr and strncopy. It says that *swap can be zero, which then makes strncpy stop. I tried to find way to solve this problem, but I couldn't. How can I fix this code?
 #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    char *swap (char* data, const char* original, const char* change);
    
    
    int main() {
        char string[100];
        char original[100];
        char change[100];
    
        printf("Input String : ");
        fgets(string, 100, stdin);
        printf("Find String : ");
        fgets(original, 100, stdin);
        printf("Replace String : ");
        fgets(change, 100, stdin);
        printf("%s", swap(string, change, original));
    
        return 0;
    }
    
    char *swap(char* data, const char* original, const char* change) {
        char* swap;
        swap = strstr(data, original);
        int num = strlen(change);
        if (num == 0 || swap==0) return 0;
    
        strncpy(swap, change, strlen(change));
    
        printf("Result : %s", data);
        return 0;
   }
 
    