How to check if all word in an array exists in a given string with C

1 Answer

0 votes
#include <stdio.h>
#include <string.h>
#include <stdbool.h>

// Function to check if all words exist in string s
bool allWordsExist(const char *s, const char *words[], int wordCount) {
    for (int i = 0; i < wordCount; i++) {
        if (strstr(s, words[i]) == NULL) {  // strstr returns NULL if not found
            printf("Word \"%s\" does NOT exist in string s\n", words[i]);
            return false; // early exit if any word is missing
        } else {
            printf("Word \"%s\" exists in string s\n", words[i]);
        }
    }
    
    return true;
}

int main(void) {
    const char *s = "efandabandcd";
    const char *words[] = {"ab", "cd", "ef"};
    int wordCount = sizeof(words) / sizeof(words[0]);

    if (allWordsExist(s, words, wordCount)) {
        printf("All words exist in the string s\n");
    } else {
        printf("Not all words exist in the string s\n");
    }

    return 0;
}



/*
run:

Word "ab" exists in string s
Word "cd" exists in string s
Word "ef" exists in string s
All words exist in the string s

*/

 



answered Dec 3, 2025 by avibootz

Related questions

...