int main(int argc, char **argv) {
    if (argc != 3) {
        fprintf(stderr, "Usage: greeting message name\n");
        return 1;
    }
    char greeting[20];
    char *name = argv[2];

    // Your code goes here
    char *hi = argv[1];
    strncpy(greeting, hi, sizeof(greeting) - 1);
    strncat(greeting, " ", sizeof(greeting) - strlen(greeting) - 1);
    strncat(greeting, name, sizeof(greeting) - strlen(greeting) - 1);


    printf("%s\n", greeting);
    return 0;
}

how do i make sure greeting is properly null terminated after strncpy call?