problem in sorting&counting - Programmers Heaven

#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

# problem in sorting&counting

Posts: 13Member
Hi, I have a program that should read a line of text and output the number of words in the line and the number of occurrences of each letter. the output of the letters must be in alphabetical order counting both upper and lowercase versions .(ex input: Hello Hi. And the output: there are 2 words
1 e
2 h
1 i
2 l
1 o

I've done the first part but I couldn't solve the second part. first, I changed all the uppercase to lowercase.then,I found this sort but I have the spaces and other punctuations showing with it..
do
{
finish = 0;
for ( i = 0; i < x - 1; i++) // sorting the string..
{
if (s[i] > s[i + 1])
{
hold = s[i];
s[i] = s[i + 1];
s[i + 1] = hold;

finish = 1;
}
}
}while (finish != 0) ;

* so I decided to delete everything that is not a letter but it didn't work…

for (i=0; i<size; i++) // string contains only letters..
if (isalpha(s[i]))
temp[i]=s[i] ;
* and I thought of another way that it didn't work..

for (i=0; i<size; i++) // string contains only letters..
if (!isalpha(s[i]))
s[i]=s[i+1] ;

* finally I decided to do the counting any way, but I have the occurrences of each letter repeated as many times as it occurred, as well as ,counting punctuations.

for ( i=0;i<x;i++) //counting the occurrences of each letter..
{ for(j=0;j<x;j++)
{
if (s[i]==s[j])
a++ ;
}
cout << s[i] << " occured : " <<a << endl;
a=0;
}
cout << endl;
return 0;
}

• Posts: 8Member
I think you'll find it much easier to check for alphabetical order with their corresponding ascii number instead. As for the list of numbers, I don't remember what they were, but it shouldn't be too hard to search for it on the web.

: Hi, I have a program that should read a line of text and output the number of words in the line and the number of occurrences of each letter. the output of the letters must be in alphabetical order counting both upper and lowercase versions .(ex input: Hello Hi. And the output: there are 2 words
: 1 e
: 2 h
: 1 i
: 2 l
: 1 o
:
: I've done the first part but I couldn't solve the second part. first, I changed all the uppercase to lowercase.then,I found this sort but I have the spaces and other punctuations showing with it..
: do
: {
: finish = 0;
: for ( i = 0; i < x - 1; i++) // sorting the string..
: {
: if (s[i] > s[i + 1])
: {
: hold = s[i];
: s[i] = s[i + 1];
: s[i + 1] = hold;
:
: finish = 1;
: }
: }
: }while (finish != 0) ;
:
: * so I decided to delete everything that is not a letter but it didn't work…
:
: for (i=0; i<size; i++) // string contains only letters..
: if (isalpha(s[i]))
: temp[i]=s[i] ;
: * and I thought of another way that it didn't work..
:
: for (i=0; i<size; i++) // string contains only letters..
: if (!isalpha(s[i]))
: s[i]=s[i+1] ;
:
: * finally I decided to do the counting any way, but I have the occurrences of each letter repeated as many times as it occurred, as well as ,counting punctuations.
:
: for ( i=0;i<x;i++) //counting the occurrences of each letter..
: { for(j=0;j<x;j++)
: {
: if (s[i]==s[j])
: a++ ;
: }
: cout << s[i] << " occured : " <<a << endl;
: a=0;
: }
: cout << endl;
: return 0;
: }
:
:
:
:
:
:
: