I have this code here that correctly formats the hard-coded sentence and finds the frequency of which a certain letter shows up in that string:
#include <stdio.h>
#include <string.h>
int main() {
    char words[1000][100];
    int x = 0, y;
    char myString[10000] = "The quick Brown ? Fox ? jumps over the Lazy Dog and the !##! LAZY DOG is still sleeping";
    printf("Original Text:\n");
    printf("%s\n", myString);
   
    // Function for uppercase letters to become lowercase and to remove special characters
    for (x = 0; x <= strlen(myString); ++x) {
        if (myString[x] >= 65 && myString[x] <= 90)
            myString[x] = myString[x] + 32;
    }
    for (x = 0; myString[x] != '\0'; ++x) {
        while (!(myString[x] >= 'a' && myString[x] <= 'z') &&
               !(myString[x] >= 'A' && myString[x] <= 'Z') &&
               !(myString[x] >= '0' && myString[x] <= '9') &&
               !(myString[x] == '\0') && !(myString[x] == ' ')) {
            for (y = x; myString[y] != '\0'; ++y) {
                myString[y] = myString[y + 1];
            }
            myString[y] = '\0';
        }
    }
   
    printf("\nModified Text: \n%s\n", myString);
    // Part A
    int counts[26] = { 0 };
    int k;
    size_t myString_length = strlen(myString);
    for (k = 0; k < myString_length; k++) {
        char c = myString[k];
        if (!isalpha(c))
            continue;
        counts[(int)(c - 'a')]++;
    }
   
    printf("\nLetter\tCount\n------  -----\n");
    
    for (k = 0; k < 26; ++k) {
        printf("%c\t%d\n", k + 'a', counts[k]);
    }
    // Part B
    int i = 0, count = 0, occurrences[10000] = { 0 };
 
    while (myString[i] != '\0') {
        char wordArray[100];
        int j = 0;
       
        while (myString[i] != ' ' && myString[i] != '\0') {
            wordArray[j++] = myString[i++];
        }
     
        if (wordArray[j - 1] == ',' || wordArray[j - 1] == '.') {
            wordArray[j - 1] = '\0';
        }
        wordArray[j] = '\0';
        int status = -1;
    
        for (j = 0; j < count; ++j) {
            if (strcmp(words[j], wordArray) == 0) {
                status = j;
                break;
            }
        }
    
        if (status != -1) {
            occurrences[status] += 1;
        } else {
            occurrences[count] += 1;
            strcpy(words[count++], wordArray);
        }
        ++i;
    }
 
    printf("\nWord Length\tOccurrences\n-----------     -----------\n");
 
    for (i = 0; i < count; ++i) {
        // print each word and its occurrences
        printf("%s\t\t%d\n", words[i], occurrences[i]);
    }
}
Part B is where I'm having a problem though, I want the code to be able to tell me the occurrence of which a word of a specific length shows up, such as this instance:
Word length Occurrences
1           0
2           1
Here, there are no instances where there is a word with one character, but there is one instance where there is a word with two characters. However, my code is outputting the number of times a specific word is given and not what I want above, like this:
Word Length     Occurrences
-----------     -----------
the             3
quick           1
brown           1
                3
fox             1
jumps           1
over            1
lazy            2
dog             2
and             1
is              1
still           1
sleeping                1
How would I go about changing it so that it shows the output I want with just the word length and frequency?