/*=========================== Program to sort the strings in an array of pointers to strings =======/
/============================ By :Bipin Gosain ============================/
============================= Date :27-5-2016 ============================*/
//=========================== Note : this program is written to be compiled with c99 standard compiler ===========
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define LENGTH_OF_NAME 50
#define NO_OF_NAMES 5
//==================== function to display the contents of the array =============================================
void displayArrayContent(char *pointerToStrings[]){
for(int i = 0 ; i < NO_OF_NAMES ; i++){
printf("\t%s", pointerToStrings[i]);
}
printf("\n");
}
//==================== function to sort the array of names ================================
void sortNames(char *pointerToStrings[]){
char *temp = (char*)malloc(sizeof(char));
for(int i = 0 ; i < NO_OF_NAMES - 1 ; i++){
for(int j = 0 ; j < NO_OF_NAMES-i-1 ; j++){
if(strcmp(pointerToStrings[j], pointerToStrings[j+1])<0){
temp = pointerToStrings[j];
pointerToStrings[j] = pointerToStrings[j + 1];
pointerToStrings[j + 1] = temp;
}
}
}
}
void main(){
char *pointerToStrings[NO_OF_NAMES];// this array of pointers to string(names) can contain 10 string
//Allocating memory to the array of pointers
for(int i = 0 ; i < NO_OF_NAMES ; i++){
pointerToStrings[i] = (char *) malloc(sizeof(char)*LENGTH_OF_NAME);
printf("Enter %d string : ", (i + 1));
scanf("%[^\n]s", pointerToStrings[i]);
getchar();
}
printf("Original contents in the array are : \n");
displayArrayContent(pointerToStrings);
sortNames(pointerToStrings);
printf("Sorted contents in the array are : \n");
displayArrayContent(pointerToStrings);
}
Above program reads the number of multi word strings from user and then sort them in descending order alphabeticcally.
Program is run and tested on gcc compiler with c99 standard.
The most important point regarding this program is reading input using pointers.
Hope you guys enjoy it.
0 Comment(s)