w3resource

C Programming: Find the largest and smallest word in a string

C String: Exercise-20 with Solution

Write a program in C to find the largest and smallest words in a string.

C Programming: Find the largest and  smallest word in a string

Sample Solution:

C Code:

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main() {
    char str[100], word[20], mx[20], mn[20], c; // Declare character arrays and variables
    int i = 0, j = 0, flg = 0; // Initialize variables for iteration and flags
	
    printf("\n\nFind the largest and smallest word in a string :\n");
    printf("-----------------------------------------------------\n");
    printf("Input the string : ");
    i = 0;
    while ((c = getchar()) != '\n' && i < sizeof(str) - 1) { // Read character by character until newline or end of array
        if (isalnum(c) || isspace(c)) { // Check for alphanumeric characters and spaces
            str[i++] = c; // Store characters in str array
        }
    }
    str[i] = '\0'; // Terminate the string with null character
    // Loop through the input string to find the largest and smallest words
    for (i = 0; i < strlen(str); i++) {
        while (i < strlen(str) && !isspace(str[i]) && isalnum(str[i])) { // Check for alphanumeric characters
            word[j++] = str[i++]; // Store characters in word array until a space or non-alphanumeric character is found
        }
        if (j != 0) { // Check if there's a word
            word[j] = '\0'; // Terminate the word with null character
            if (!flg) { // Check if it's the first word encountered
                flg = !flg; // Set flag to indicate the first word
                strcpy(mx, word); // Copy the first word to both mx (max) and mn (min)
                strcpy(mn, word);
            }
            if (strlen(word) > strlen(mx)) { // Compare word lengths to find the maximum
                strcpy(mx, word); // Update mx if the current word is longer
            }
            if (strlen(word) < strlen(mn)) { // Compare word lengths to find the minimum
                strcpy(mn, word); // Update mn if the current word is shorter
            }
            j = 0; // Reset word index for the next word
        }
    }
    // Display the largest and smallest words found in the input string
    printf("The largest word is '%s' \nand the smallest word is '%s' \nin the string: '%s'.\n", mx, mn, str);
	
    return 0; // Return 0 to indicate successful execution of the program
}

Sample Output:

Find the largest and  smallest word in a string :                                                                             
-----------------------------------------------------                                                                         
Input the string : It is a string with smallest and largest word.                                                              
The largest word is 'smallest'                                                                                                
and the smallest word is 'a'                                                                                                  
in the string : 'It is a string with smallest and largest word'.

Flowchart :

Flowchart: Find the largest and  smallest word in a string

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

Previous: Write a program in C to Concatenate Two Strings Manually.
Next: Write a program in C to convert a string to uppercase.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.