PDA

View Full Version : سوال: چه طور کدی بنویسم که 2 فاصله را یک فاصله حساب کند؟ در c++



almasm85
سه شنبه 23 دی 1393, 22:15 عصر
سلام
در مورد برنامه زیر میخواهم کدی بهش اضافه کنم که دو بار فاصله ی بین کلمات را یک حرف حساب کند و یک بار بشمارد.
در واقع می خواهم اگر کسی به اشتباه دو بار کلید space را فشار داد بین دو کلمه . فقط یک بار حساب شود.

سوال اصلی اینه :

برنامه ای بنویسید که تعداد کاراکترهای یک جمله را محاسبه و چاپ کند آخر جمله . ( نقطه ) وجود دارد .
با استفاده از حلقه ی while
بدون احتساب نقطه



#include<iostream>
using namespace std;
int main()
{
char ch;
int count;
count=0;
while((ch=cin.get())!='.')
{
count++;
}
cout<<count;
return 0;
}

omid_kma
سه شنبه 23 دی 1393, 23:07 عصر
به این شکل :

#include <iostream>
#include <string>
#include <regex>


int main()
{
std::string str;
std::getline(std::cin, str,'.');
std::regex regex("[ ]{2,}");//two or more space
std::string replace_str = " ";//replace with one space
str = std::regex_replace(str, regex, replace_str);//find regex in str and replace with replace_str
std::cout << str.size();
}


اجرا : http://coliru.stacked-crooked.com/a/57dece3e8d52854c

Ananas
چهارشنبه 24 دی 1393, 00:40 صبح
#include<iostream>
using namespace std;
int main()
{
char ch;
int count;
count=0;
char current_char = (char)0;
while((ch=cin.get()) != '.')
{
if ( !( (ch == ' ') && (current_char == ' ') ) )
count++;
current_char = ch;
}
cout<<count;
getchar();
getchar();
return 0;
}