PDA

View Full Version : راهنمایی در رشته ها



mazimazi
پنج شنبه 17 اردیبهشت 1388, 02:33 صبح
این برنامه در مورد اینه که تعداد کاراکتر ها و تعداد کلمه ها رو میشمره ولی یه اشکال داره اینه که وقتی دو بار space میزنی تعداد کلمه ها رو اشکال می گیره باید چی جوری این اشکال رد کنم؟

#include<conio.h>
#include<iostream.h>
#include<stdio.h>
#include<string.h>
main()
{
int i=0,x,j;
char s[101];
clrscr();
cout<<"enter a statement:";
gets(s);
x=strlen(s);
cout<<"count of characters:"<<x;
for(j=0;j<=x;j++)
if(s[j]==' '||s[j]=='.'||s[j]==','||s[j]==0)
i++;
cout<<"\ncount of words:"<<i;
getch();
}

SamaPic
پنج شنبه 17 اردیبهشت 1388, 14:06 عصر
با سلام.
دوست من الگوریتم این است که جمله را بپیماید و هر جا که به فاصله رسید به خانه ی قبلی نگاه کند ، اگر حرفی از حروف الفبا بود آن را یک کلمه حساب کند و اگر هم نبود از آن بگذرد.
حالا شما در اینجا تعداد فاصله ها را هم بشمار و در نهایت با دستوری که در زیر آوردم طول آرایه را بدست بیاور. پس از آن طول بدست آمده را منهای تعداد فاصله ها کنید=تعداد کاراکتر ها.


strlen();
حالا این وسط یک شرط هم باید گذاشت که اگر با نقطه "." روبرو شد به خانه ی قبل نگاه کرده.اگر حرف بود یک کلمه حسابش کنه و اگر فاصله یا .. بود از آن بگذرد.
خدانگهدار.

mazimazi
جمعه 18 اردیبهشت 1388, 18:34 عصر
من تعداد کاراکتر منهای تعداد فاصله کردم ولی تعداد کلمه هام هم کم شد به جای 2 کلمه یک شد؟؟ الان این برنامه بالا رو اینطوری تغییرش دادم به نظر دوستان درسته؟؟؟

#include<conio.h>
#include<iostream.h>
#include<stdio.h>
#include<string.h>
main()
{
int i=1,x,j;
char s[101];
clrscr();
cout<<"enter a statement:";
gets(s);
x=strlen(s);
x=x-1;
cout<<"count of characters:"<<x;
for(j=0;j<=x;j++)
if(s[j]==' '||s[j]=='.'||s[j]==','||s[j]==0)
i++;
if(s[j]==' ')
j=0;
cout<<"\ncount of words:"<<i;
getch();
}