Solved

How to sort names alphabetically in C

Posted on 1997-12-11
5
3,330 Views
Last Modified: 2012-06-27
Hello, I'm a freshman programming student and I need a VERY FAST solution to a finals project our professor gave us. We need to write the code for a C program that:
1)Will ask the user to input names or words (perhaps 10 names)
2)Will show a menu asking the user if he/she wants the names to be arranged in ascending or descending alphabetical order
3)Will output the names in the order specified by the user in one column
I know this sounds dumb to experts like you people, but please help me.
I'm pulling my hair out just thinking about the solution.
THANKS VERY MUCH IN ADVANCE!!!!!
0
Comment
Question by:mamoru120997
  • 3
5 Comments
 
LVL 7

Expert Comment

by:galkin
ID: 1256624
You ca use the fact that each letter is ASCII character, which is in turn no more that interger value. For instance a is 32, if I am not mistaken, b - 33 etc. So you can get first character in the word substruct 32 and sort numbers.  
0
 

Expert Comment

by:hbadr
ID: 1256625
I have the code for you ,if you want ,by the way 32 is the ascii code for (space)
0
 

Author Comment

by:mamoru120997
ID: 1256626
Not very useful.
0
 

Accepted Solution

by:
hbadr earned 200 total points
ID: 1256627
//Here is the code mamoru :

#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <String.h>

void main()
{
 char **Ptr;
 int i,j;
 int size,sort;
 char swap[20];

 printf("How Much words do You Want To Sort: ");
 scanf("%d" ,&size );

 printf("\nChoose:");
 printf("\n1 - Assending");
 printf("\n2 - Dessending");

 sort=3;
 while( sort!=1 && sort!=2 ){
 printf("\nEnter Choice : ");
 scanf("%d", &sort);
 }

 Ptr = calloc( size , sizeof( char * ) );  // Dynamically allocate String
                                           // pointers
 for( i=0 ; i<size ; i++ ){
     Ptr[i] = calloc( 20 ,sizeof( char ) ); // Allocate 20 bytes for each
 }                                         // string

 for( i=0 ; i<size ; i++ ){                    // scan strings
     printf("\nEnter Word No. %d : " ,i+1 );
     scanf("%s", Ptr[i] );
 }

 if ( sort==1  ){
     for( j=0 ; j<size ; j++ ){       // sort assending
       for( i=j+1 ; i<size ; i++ ){
           if( Ptr[j][0] > Ptr[i][0] ){
               strcpy( swap,Ptr[i] );
               strcpy( Ptr[i] , Ptr[j] );
               strcpy( Ptr[j] , swap );
             }
         }
     }
 }
 if ( sort==2  ){
     for( j=size-1 ; j>=0 ; j-- ){     //sort dessending
         for( i=j-1 ; i>=0 ; i-- ){
           if( Ptr[j][0] > Ptr[i][0] ){
               strcpy( swap,Ptr[i] );
               strcpy( Ptr[i] , Ptr[j] );
               strcpy( Ptr[j] , swap );
             }
         }
     }
  }

 printf("\nSorted Words");
 for(i=0;i<size;i++){
     printf("\nWord No.%d : %s",i+1,Ptr[i]);
 }


}

0
 

Expert Comment

by:hbadr
ID: 1256628
SO why do you ask if don't need the answer ,these things take time if you may know.
0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

Have you thought about creating an iPhone application (app), but didn't even know where to get started? Here's how: ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Important pre-programming comments: I’ve never tri…
This tutorial is posted by Aaron Wojnowski, administrator at SDKExpert.net.  To view more iPhone tutorials, visit www.sdkexpert.net. This is a very simple tutorial on finding the user's current location easily. In this tutorial, you will learn ho…
The goal of this video is to provide viewers with basic examples to understand and use structures in the C programming language.
The goal of this video is to provide viewers with basic examples to understand and use conditional statements in the C programming language.

759 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now