انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: { حل شد} مشکل با برنامه شمردن تعداد کلمات یک رشته در سی ++ { حل شد}  (دفعات بازدید: 1225 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
سلام دوستان

یک برنامه هستش که تعداد کلمات داخل یک رشته رو میشماره کلمات فقط با اسپیس و تب از هم جدا شدن و ممکنه چند اسپیس سا چند تب پشت سره هم بیان ولی نمیدونم چه مشکلی داره که نمیتونه بشماره

#include <iostream>
#include <stdio.h>
using namespace std;

int main()
{
    int i,flag=0,y=0;
    char s[100];
    gets(s);
    for(i=0;s[i]!=NULL;i++)
    {
        if(s[i]==' '||s[i]=='\t')
            while(flag=0)
            {
                if(s[i]==' '||s[i]=='\t')
                    i++;
                else
                {
                    y++;
                    flag=1;
                }
            }
    flag=0;
    }
    cout<<"result "<<y+1;
    return 0;
}

پیشاپیش ممنون.
« آخرین ویرایش: 10 دی 1391، 09:59 ب‌ظ توسط alieblice »

آفلاین majidkamali1370

  • Hero Member
  • *
  • ارسال: 928
  • جنسیت : پسر
while(flag=0)باید به این تبدیل بشه:
while(flag == 0)راه راحت ترش اینه:
#include <iostream>
#include <sstream>
using namespace std;

int main()
{
int i = 0;
string str, temp;
stringstream ss;

getline(cin, str);
ss << str;

while(ss >> temp) i++;

cout << i;
}
Ubuntu 14.04 LTS 64-bit - unity

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
خیلی ممنون . درست شد . گیرش یک دونه = بود . 1 ساعت الافش بودم.
اون کد هم سطحش از من خیلی بالا تره در اون حد هنوز بلد نیستم. ایشا... به اون حد میرسم.
 موضوع رو حل شد زدم.