مشکل:سورس شمارنده ارقام و حروف

mhabat

Member
با سلام.سورس یک برنامه هست که تعداد حروف و ارقام رو نمایش میده.اگه میشه قسمت های اصلی رو توضیح بدین.
(عنوان تایپک رو باید به جای مشکل درخواست توضیح میزدم عذر می خوام)
کد:
#include <iostream.h>
#include <conio.h>
int main()
{
    int word_counter=0,small_chars=0,large_chars=0,number_counter=0,special_chars=0;
    char ch=0;
    cout<<"\n *** This program counts the number of different kinds of characters ***\n "
    <<"\t\t*** which you use in a paragragh ***\n\n";
    cout<<" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n\n";
    cout<<"\n\a>>NOTE: about using space(????)\n"
    <<"\n\\O/ Now! Enter a paragragh (and press enter 4end):\n\n\n";
    cout<<"\t\t\t * * * * * \n\n ";
    while((ch=getche())!='\r')
    {
        if(ch>='a'&&ch<='z')
            small_chars++;
        else if(ch>='A'&&ch<='Z')
            large_chars++;
        else if(ch>='0'&&ch<='9')
            number_counter++;
        else if(ch==' '||ch==',' || ch=='.')
            word_counter++;
        else
            special_chars++;
    }
    word_counter++;
    cout<<"\n\n >Word Count= "<<word_counter<<"\n\n >Small Characters Count= "<<small_chars
    <<"\n\n >Large Characters Count= "<<large_chars<<"\n\n >Number Count= "<<number_counter
    <<"\n\n >Special Characters Count= "<<special_chars;
    getch();
    return 0;
}
خیلی ممنون
بدرود
 
آخرین ویرایش:

the_king

مدیرکل انجمن
با سلام.سورس یک برنامه هست که تعداد حروف و ارقام رو نمایش میده.اگه میشه قسمت های اصلی رو توضیح بدین.
(عنوان تایپک رو باید به جای مشکل درخواست توضیح میزدم عذر می خوام)

متغیر word_counter تعداد کلمات رو نگهداری می کنه، small_chars تعداد حروف الفبای کوچک
متغیر large_chars حروف الفبای بزرگ، number_counter تعداد ارقام و special_chars تعداد کاراکتر های خاص
کد:
    int word_counter=0,small_chars=0,large_chars=0,number_counter=0,special_chars=0;

نمایش یکسری متن :
کد:
    cout<<"\n *** This program counts the number of different kinds of characters ***\n "
    <<"\t\t*** which you use in a paragragh ***\n\n";
    cout<<" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \n\n";
    cout<<"\n\a>>NOTE: about using space(????)\n"
    <<"\n\\O/ Now! Enter a paragragh (and press enter 4end):\n\n\n";
    cout<<"\t\t\t * * * * * \n\n ";

از کاربر یک کلید رو دریافت کرده و کد کاراکتر رو در ch قرار میده، تا زمانی که کلید Enter رو فشار نداده باشید
(کد r\ ) به گرفتن ورودی ادامه میده.
کد:
    char ch=0;
    while((ch=getche())!='\r')
    {

اگر کلید فشار داده شده بین a الی z بود، تعداد حروف کوچک را یک واحد بیشتر کن :
کد:
        if(ch>='a'&&ch<='z')
            small_chars++;

همان مورد قبلی اینبار برای حروف بزرگ :
کد:
        else if(ch>='A'&&ch<='Z')
            large_chars++;

و ارقام :
کد:
        else if(ch>='0'&&ch<='9')
            number_counter++;

این بخش کد ایراد داره، اگر به کاراکتر های فاصله . یا , برسه عبارت قبلی رو یک کلمه حساب می کنه،
در حالی که ممکنه کاربر بعد از یک کلمه سه تا نقطه قرار بده، یا اصلا هیچکدوم از این کاراکتر رو وارد نکنه،
یا ورودی اش رو با . تموم کنه.
در این حالت ها تعداد کلمات رو اشتباه می شماره.
کد:
        else if(ch==' '||ch==',' || ch=='.')
            word_counter++;

اگر کاراکتر هیچکدوم از اینها نبود جزو کاراکتر های ویژه حساب اش می کنه :
کد:
        else
            special_chars++;
    }

تعداد کلمات شمرده شده رو یکی بیشتر می کنه، شیوه شماره کلمات اش درست نیست.
کد:
    word_counter++;

نمایش متغیر هایی که مقدارشون محاسبه شده :
کد:
    cout<<"\n\n >Word Count= "<<word_counter<<"\n\n >Small Characters Count= "<<small_chars
    <<"\n\n >Large Characters Count= "<<large_chars<<"\n\n >Number Count= "<<number_counter
    <<"\n\n >Special Characters Count= "<<special_chars;
 

جدیدترین ارسال ها

بالا