w3resource

C Programming: Sort a string array in ascending order

C String: Exercise-11 with Solution

Write a C program to sort a string array in ascending order.

C Programming: Sort a string array in ascending order

Sample Solution:

C Code:

#include <stdio.h>
#include <string.h>
void main()
{
  char str[100],ch;
  int i,j,l;
  
       printf("\n\nSort a string array in ascending order :\n");
       printf("--------------------------------------------\n");  
       printf("Input the string : ");
       fgets(str, sizeof str, stdin);
  l=strlen(str);
  /* sorting process */
  for(i=1;i<l;i++)
    for(j=0;j<l-i;j++)
	if(str[j]>str[j+1])
	{
	  ch=str[j];
	  str[j] = str[j+1];
	  str[j+1]=ch;
	}
   printf("After sorting the string appears like : \n");
   printf("%s\n\n",str);
  }
  
  

Sample Output:

Sort a string array in ascending order :                                                                      
--------------------------------------------                                                                  
Input the string : w3resource                                                                                 
After sorting the string appears like :                                                                       
                                                                                                              
3ceeorrsuw

Flowchart :

Flowchart: Sort a string array in ascending order

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

Previous: Write a program in C to find maximum occurring character in a string.
Next: Write a program in C to read a string through keyboard and sort it using bubble sort.

What is the difficulty level of this exercise?



C Programming: Tips of the Day

Is there a way to specify how many characters of a string to print out using printf()?

The basic way is:

printf ("Here are the first 8 chars: %.8s\n", "A string that is more than 8 chars"); 

The other, often more useful, way is:

printf ("Here are the first %d chars: %.*s\n", 8, 8, "A string that is more than 8 chars"); 

Here, you specify the length as an int argument to printf(), which treats the '*' in the format as a request to get the length from an argument.

You can also use the notation:

printf ("Here are the first 8 chars: %*.*s\n",
        8, 8, "A string that is more than 8 chars"); 

This is also analogous to the "%8.8s" notation, but again allows you to specify the minimum and maximum lengths at runtime - more realistically in a scenario like:

printf("Data: %*.*s Other info: %d\n", minlen, maxlen, string, info); 

The POSIX specification for printf() defines these mechanisms.

Ref: https://bit.ly/395Zj2j