Skip to main content

Featured

Merge Sort in C++

  Merge Sort in C++ Introduction Merge Sort is a popular sorting algorithm that follows the Divide and Conquer approach. It divides an array into smaller subarrays, recursively sorts those subarrays, and finally merges the sorted subarrays to produce a completely sorted array. In this tutorial, we will learn how to implement Merge Sort in C++ . The program divides the array into two halves using the mid index, recursively sorts both halves, and then combines them using the merge() function. Merge Sort has a time complexity of O(n log n) in the best, average, and worst cases. Table of Contents Algorithm C++ Program Input Sample Output Output Explanation Dry Run Flow of Execution Time Complexity Space Complexity Applications Key Points Interview Questions Frequently Asked Questions Keywords Conclusion Algorithm Start the program. Read the size of the array. Read the array elements from the user. Call the mer...

C program to sort words in a string based on their length

C Program: Sort Words in a String by Length

๐Ÿ”ท C Program: Sort Words in a String by Length

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



void sort(char words[][50], int count)
{
    char temp[50];
    for (int i = 0; i < count - 1; i++)
    {
        for (int j = i + 1; j < count; j++)
        {
            if (strlen(words[i]) > strlen(words[j]))
            {
                strcpy(temp, words[i]);
                strcpy(words[i], words[j]);
                strcpy(words[j], temp);
            }
        }
    }
}

int main()
{
    char str[200];
    char words[50][50];
    int count = 0;

    printf("Enter a string:\n");
    fgets(str, sizeof(str), stdin);

    int len = strlen(str);
    if (str[len - 1] == '\n')
    {
        str[len - 1] = '\0';
    }

    char *token = strtok(str, " ");
    while (token != NULL)
    {
        strcpy(words[count++], token);
        token = strtok(NULL, " ");
    }

    sort(words, count);

    for (int i = 0; i < count; i++)
    {
        printf("%s ", words[i]);
    }
    printf("\n");

    return 0;
}
  

๐Ÿ“˜ Explanation:

This program sorts the words in a given string **based on their lengths** using arrays and string manipulation functions in C.

๐Ÿ”น The input string is first taken using `fgets()` to safely read multi-word input.
๐Ÿ”น A newline character (`\n`) at the end is replaced with `\0` to clean the input.
๐Ÿ”น The `strtok()` function is used to **tokenize** the string by spaces into individual words, which are stored in a 2D array `words`.

๐Ÿ”น The `sort()` function uses **nested loops** to compare the length of each word using `strlen()`: - If one word is longer than the other, they are swapped using `strcpy()` and a temporary buffer.

๐Ÿ”น After sorting, the words are printed in increasing order of their lengths.

๐Ÿ” Sample Output:

Enter a string:
i love programming in C

i in C love programming
    

๐Ÿท️ Keywords:

C string sorting, C program for sorting words, strtok usage in C, sort by word length, 2D array string sort, beginner C string program

Comments

Popular Posts

๐ŸŒ™