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.
- The reading file could be any text file where its name is given by the user

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

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) ...

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

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.


commented: what? -4

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.

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...