Check if String Ends with a Specific Substring in C Language

To check if a string ends with a specific substring, check if substring matches the ending of the string, character by character, in a loop.

C Program

In the following program, we take a string in str and substring in substr, take a for loop to iterate over characters of ending of str and substr until the end of substr, and check if they are same.

Refer C For Loop tutorial.

main.c

</>
Copy
#include <stdio.h>
#include <string.h>
#include <stdbool.h>

int main() {
    char str[30] = "apple banana";
    char substr[30] = "na";

    int lenOfStr = strlen(str);
    int lenOfSubstr = strlen(substr);
    
    bool endsWith = false;
    if (lenOfSubstr <= lenOfStr) {
        for (int i = 0; i < lenOfSubstr; i++) {
            if (str[i + lenOfStr - lenOfSubstr] != substr[i]) {
                endsWith = false;
                break;
            }
            endsWith = true;
        }
    }
    
    if (endsWith) {
        printf("String ends with specified substring.\n");
    } else {
        printf("String does not end with specified substring.\n");
    }
    return 0;
}

Output

String does not end with specified substring.
Program ended with exit code: 0

Conclusion

In this C Tutorial, we learned how to check if a string ends with a specific substring, with examples.