PDA

View Full Version : سوال: رشته ها



reza_ashkhor
پنج شنبه 16 اردیبهشت 1389, 13:01 عصر
سلام
راستش من تازه کارم اگه میشه کمکم کنید
یه برنامه هست که یه رشته داریم .تو این رشته کلمه ها ممکنه با چندین فاصله جدا شده باشند ما می خواهیم برنامه ای بنویسیم که این فاصله های بین کلمات تو به تک اسپیس تبدیل کنه مثلا:
متنمون این طوری بشه
salam man rezam komak
من خودم اینو نوشتم ولی فقط برای کلمه اول کار میکنه

#include <iostream.h>
#include <conio.h>
int main()
{
int b=0;
char text[]={"salam man rezam"};
for(int i=0;text[i];i++)
{
for(int ii=0;ii<i;ii++)
{
if(text[ii]==' ')
b++;
if(b>=2)
text[ii]=text[ii+1];
}
b=0;
}
cout<<text;
getch();
return 0;
}
//***********************************************
البته گفته باشم این جا تو رشتمون بین کلمات فاصله هست اما وقتی مطلبو ثبت میکنه بی فاصله نشونش می ده

reza_ashkhor
پنج شنبه 16 اردیبهشت 1389, 15:36 عصر
سلام
بسیار ممنونم
اره کار میکنه
فقط اگه میشه بگید چطوری کار میکنه
و کد من اشکالش چی بود..
یعنی میشه منم یه روز یه قدرت شما در برنامه نویسی برسم
:قلب:

Salar Ashgi
پنج شنبه 16 اردیبهشت 1389, 16:12 عصر
اتفاقا الگوریتمی که منم استفاده کردم شبیه الگوریتم دوستمون Negative_Se7en (http://barnamenevis.org/forum/member.php?u=134418) بود ، چون منطقش

یه چیز ثابتیه ، به همین دلیل تشابه بوجود میاد .

توضیح ساده الگوریتم : ما قراره تمام حروف رو چاپ کنیم ، ولی هر وقت به کاراکتر فاصله رسیدیم نباید

همشون چاپ بشن ، فقط اونایی رو چاپ می کنیم که قبلشون حرف باشه و نه کاراکتر فاصله !

کد به زبان ساده تر :



#include <iostream>
#include <conio>
#include <string>
int main(){
char a[]={"this is a test"};
int len = strlen(a);
for(int i=0;i<len;i++){
if(a[i]!=' ')
cout<<a[i];
else if(a[i]==' ' && a[i-1]!=' ')
cout<<' ';}
getch();
}


موفق باشید .

reza_ashkhor
پنج شنبه 16 اردیبهشت 1389, 16:36 عصر
بچه ها ممنون ازتون
از این سوال و جوابا فهمیدم برای این که برنامه نویسی موفقی بشم باید قدرت تحلیل مساله ام بالا بره
من می تونم