Find Duplicate or Repeating Words in String Using C

main.c

#include <stdio.h>  
#include <string.h>  
   
int main()  
{     
    char string[] = "Small brown bug bit a small brown dog on his small brown nose";  
    char words[100][100];  
    int i = 0, j = 0, k, length, count;  
      
    //Split the string into words such that each row of array words represents a word  
    for(k=0; string[k]!='\0'; k++){  
          
        //Here, i represents row and j represents column of two-dimensional array words  
        if(string[k] != ' ' && string[k] != '\0'){  
            //Converts the string into lowercase and add it to array words  
            words[i][j++] = tolower(string[k]);  
        }  
        else{  
            words[i][j] = '\0';  
            //Increment row count to store new word  
            i++;  
            //Set column count to 0  
            j = 0;  
        }  
    }  
      
    //Store row count in variable length  
    length = i+1;  
      
    printf("Duplicate words in the given string: \n");  
    for(i = 0; i < length; i++){  
        count = 1;  
        for(j = i+1; j < length; j++){  
           if(strcmp(words[i], words[j]) == 0 && (strcmp(words[j],"0") != 0)){  
               count++;  
               //Set words[j] to 0 to avoid printing visited word  
               strcpy(words[j],"0");  
           }   
        }  
        //Displays the duplicate word if count is greater than 1  
        if(count > 1 )  
            printf("%s\n", words[i]);  
    }  
    
    return 0;  
}

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.