Hello every one
.
.
recently i have written this code to count letters and words in the phrase that the user enter , it worked once but when deleted (by mistake) and tried to rewrite it again it didn't work , so could you please help me to find out why it's not working ?
.
.
.

#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
    int chcount=0;
    int wdcount=1;
    char ch;
    cout<<"Enter A Phrase:";
        while((ch = getche()) !='/r')
        {
         if(ch==' ')
            wdcount++;
         else
            chcount++;
        }
        cout<<"\nWords = "<<wdcount<<endl;
        cout<<"Letters = "<<chcount<<endl;
    system("pause");
    return 0;
}

Recommended Answers

All 5 Replies

Try using this code : (Simple and easy)

#include<iostream.h>
#include<stdio.h>
#include<string.h>
void main()
{
 char ch[50];
 int c=0,w=1;
 cout<<"Enter the phrase : ";
 gets(ch);
 for(int i=0;i<strlen(ch);i++)
  { 
   if(ch[i]==' ')
    w++;
   else
    c++;
  }
 cout<<"Number of words :"<<w<<endl;
 cout<<"Number of letters :"<<c<<endl;
}

@Avishek_1

NOT good to use gets ... NOR to revert to old style C++ and mix up OP using stdio.h when OP was using C++ <iostream>

Also since OP using C++, best to use C++ string.

So ... would recommend something like this instead:

#include <iostream>
#include <sstream> // re. istringstream
#include <string>

using namespace std;



int main()
{
    cout <<"Enter a phrase: ";
    string line;
    getline( cin, line );

    istringstream iss( line ); // construct iss obj. from line

    // now parse and get word count and character count
    int chcount = 0;
    int wdcount = 0;
    string word;
    while( iss >> word )
    {
        ++wdcount;
        chcount += word.size();
    }

    // report ...
    cout << "\nWords = " << wdcount << endl;
    cout << "Characters = " << chcount << endl;

    cout << "\nPress 'Enter' to continue/exit ... ";
    cin.get();
    return 0;
}

Also @Avishek_1 ...

Please note that in standard C++ (and C)

it is int main ( NOT void main ) i.e. main returns an int

Thank You Avishek And David
Both codes works fine with me
But would you please tell me what's the mistake in my code

**After looking again to my code i realized that it should be '\r' instead of '/r' , thanks for helping me **

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.