انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: alieblice در 10 دی 1391، 09:13 بظ
-
سلام دوستان
یک برنامه هستش که تعداد کلمات داخل یک رشته رو میشماره کلمات فقط با اسپیس و تب از هم جدا شدن و ممکنه چند اسپیس سا چند تب پشت سره هم بیان ولی نمیدونم چه مشکلی داره که نمیتونه بشماره
#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;
}
پیشاپیش ممنون.
-
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;
}
-
خیلی ممنون . درست شد . گیرش یک دونه = بود . 1 ساعت الافش بودم.
اون کد هم سطحش از من خیلی بالا تره در اون حد هنوز بلد نیستم. ایشا... به اون حد میرسم.
موضوع رو حل شد زدم.