0

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:

6
Contributors
5
Replies
6
Views
8 Years
Discussion Span
Last Post by ArkM
0

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

-1

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??!!

Votes + Comments
what?
0

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.

0

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

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.