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.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/c-programming-exercises/string/c-string-exercise-20.php