## Ameerah

Hi for ever

can any one help me only give me idea of this question

Write a program that reads from a file list of unsorted names and sort the names automatically and then asks the user whether he/she would like to print the names in the output screen or write the sorted names in a file where its name is given.
Hint:
- The reading file could be any text file where its name is given by the user

thanks a lot........:idea:

## mvmalderen 2,072

Read all the names into a vector and use the sort algorithm to sort them alphabetically :)
You could also sort it by using the strcmp function if vectors aren't allowed.

If both of them aren't allowed then you'll have to implement a sorting function first
(you could take a look at this code snippet in that case, it does exactly the same as the strcmp function) ...

## Ancient Dragon 5,243

If you have to write your own sort function, google for "sort algorithms", or for "bubble sort"

## Ahmed_I 3

I have an idea:-
1- make a structure with the following member.

``````struct Record{
char name [20];
};``````

this structure is for using fixed length record

2- Enter the names and make sure when u enter it pad the remaining bytes with spaces.
for example:- when entering mike (its 4 bytes, put 15 spaces and the last character is NULL.
I made this to make seeking in the file easier .seek 2*20 if u need the second record. 15*20 if u need 15th record etc..
4-Read names by reading 20 bytes ... 20 bytes until EOF .

5-then use a bubble sort algorithm or any other sorting algorithm
to sort the records according to their ascii values and then print them in the user's screen.

Capiche??!!

commented: what? -4

## s_sridhar 7

Just declare an array of strings. Read the strings from the file using fscanf and store it in the array and sort them using bubble sort.

## ArkM 1,090

Probably the best method to build name list dictionary is:
1. Define std::map<std::string,unsigned> (dictionary name-counter)
2. Read names and insert them into the map (increment name counter if the name is in the map)
3. Traverse map with iterator: you will get an ordered (automatically;))name list with counters.

If the file contains names separated by spaces then step #2 is trivial one. If not (it's an arbitrary text) - you need more complex scanner algorithm to extract names from a text stream...