PDA

نسخه کامل مشاهده نسخه کامل : خیلی مهم در مورد string



m_hoseyny
16-02-2012, 09:48
سلام به همگی من یه برنامه نوشتم(در dev با سورس c++) که یه رشته از کار بر می گیره و space های آن را می بره آخر حالا می خوام با یه دستوری رشته ام رو که از جنس string هست رو کوتاه کنه(سحشزث های آخر را حذف کنه) راستی بدون رشته کمکی (رشته اصلی رو دست کاری منه) ممنون

p d
16-02-2012, 11:39
سلام.
برنامه ای که نوشتی و بذار و کمی بیشتر توضیح بدید . من که نفهمیدم قراره چی بشه !:31:

dr.b4ne
16-02-2012, 11:53
سلام به همگی من یه برنامه نوشتم(در dev با سورس c++) که یه رشته از کار بر می گیره و space های آن را می بره آخر حالا می خوام با یه دستوری رشته ام رو که از جنس string هست رو کوتاه کنه(سحشزث های آخر را حذف کنه) راستی بدون رشته کمکی (رشته اصلی رو دست کاری منه) ممنون

سلام دوست عزیز ، اینم خدمت شما البته اگه شما از تایپ string استفاده کردید بجای
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید باید بنویسید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید یه توضیح کوچولو هم در بارش بدم که ابهامی پیش نیاد اگه توجه کنید مقدار رشته اول
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدهست که هفت تا space آخرش زیاد داره و برنامه اونو تبدیل به
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید کرده برای اینکه این قضیه رو نشون بده
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید رو چاپ کرده و هونطور که میبینید این رشته بدون فاصله از رشته ی سعید چاپ شده . . . پس سعید آخرش space نداره !

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
البته این برنامه رو بهتر از اینم می شد نوشت ولی حالا همینم بد نیست !
اینم واسه p d جان : یه رشته داره که آخرش ممکنه کاراکترای space داشته باشه میخواد اون space هارو حذف کنه ! همین . .

m_hoseyny
16-02-2012, 12:17
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید ببینید مثلا کاربر وارد می کنه "I like p30 world" خوب. حالا الان برنامه من تمامی اسپیس هارو می بره آخر .حالا من می خوام که این اسپیس ها حذف بشن و رشته ام تعداد کارکترش کم شه.

m_hoseyny
16-02-2012, 12:26
سلام دوست عزیز ، اینم خدمت شما البته اگه شما از تایپ string استفاده کردید بجای کد:
str[i]
باید بنویسید کد:
str.at(i)
یه توضیح کوچولو هم در بارش بدم که ابهامی پیش نیاد اگه توجه کنید مقدار رشته اول کد:
"saeed "
هست که هفت تا space آخرش زیاد داره و برنامه اونو تبدیل به کد:
"saeed"
کرده برای اینکه این قضیه رو نشون بده کد:
"like all p30world members"
رو چاپ کرده و هونطور که میبینید این رشته بدون فاصله از رشته ی سعید چاپ شده . . . پس سعید آخرش space نداره !
کد:
#include <iostream.h> #include <conio.h> #include <string> main() { char str[20]="saeed ";//there are 7 space character after saeed character and we want to delete theme short int i=0; while(str[i]!=32) //32 is space(' ') ASCII code i++; str[i]='\0'; cout<<str; cout<<"like all p30world members";//this cout apply for show which str is "saeed" no "saeed "; getch(); return 0; }
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
البته این برنامه رو بهتر از اینم می شد نوشت ولی حالا همینم بد نیست !
اینم واسه p d جان : یه رشته داره که آخرش ممکنه کاراکترای space داشته باشه میخواد اون space هارو حذف کنه ! همین . . __________________


راستی دوست عزیز برنامه شما یه ایراد بزرگ داره اگر اسپیس ها اول وارد شن کار نمکنه . در کل ممنون ولی من دنبال اون دستور کوتاه کننده ام.

dr.b4ne
16-02-2012, 12:29
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید ببینید مثلا کاربر وارد می کنه "I like p30 world" خوب. حالا الان برنامه من تمامی اسپیس هارو می بره آخر .حالا من می خوام که این اسپیس ها حذف بشن و رشته ام تعداد کارکترش کم شه.


دوست عزیز منم همینو بهت دادم دیگه بیشتر توجه کن ! فقط چون نمیدونستم رشته ی تو چیه به جاش نوشتم ببین فرض کن رشته ابتدایی شما هست"i like p30 world" بعد با اون برنامه ای که خودتون نوشتید و تو پست اولم گفتید رشتتون تبدیل میشه به "ilikep30world " یهنی اسپیس ها میرن آخر (اگه تا اینجا اشتباه بگو )حالا برنامه من میاد اون اسپیس ها رو حذف میکنه فک کنم توم همینو میخای دیگه نه ؟
در مورد اینم که میگی اگه اول باشه کار نمیکنه باید بگم :9::9::9: منظورم اینه که خودت گفتی برنامه ای نوشتی که اسپیسارو میبره آخر حالا منم برناممو طوری نوشتم که ادامه ی برنامه شما باشه . . .

p d
16-02-2012, 13:03
خب.
ببنید این سورس و :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این برنامه از شما 1 رشته میگیره و 1 position اونوقت میاد کل رشته از اون مکان به بعد و جای اون مکان کپی میکنه.
در واقع یعنی اون position میشه کاراکتری که قراره حذف شه. این برنامه کاراکتر مورد نظر و حذف میکنه.
حالا شما میخوای space رو حذف کنی. پس باید Position اسپیس و مشخص کنی فقط و بهش بدی برای حذف.
که طبق برنامه بالا که گذاشتید به نطر نمیاد مشکلی راجبش داشته باشید ولی اگه سوالی بود در خدمتیم بازم.اگه سوادمون بکشه البته.

m_hoseyny
16-02-2012, 21:36
با عرض معذرت من یه ذره تاب خوردم . کدوم دستور حذف می کنه (راستی من کمی تازه کارم کلا 4 ماهه برنامه نویسی می کنم) لطفا روی برنامه خودم تغییرات رو انجام بدید . (واقعا ببخشید)
راستی یه سوال این کد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید چی کار میکنه؟؟؟

p d
16-02-2012, 23:40
این کد شماست:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا کافیه به جای بقیه کدی که داخل این {} ها نوشته بودی و حذف میکنی و i میشه اندیسی که حاوی اسپیس هس و باید حذف شه . یعنی میشه اینطوری:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
وبعد ادامه کدی که دادم.
البته به دستور

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نیازی نیست دیگه.
راجب سوال بعدی عرض شود که؛ همیشه انتهای رشته ها با اون علامت (0\) مشخص میشه. این یعنی پایان رشته. بهش میکیم نول. وقتی شما رشته ای رو وارد میکنید توابعی که از شما اون رشته رو میگیرن خودکار در انتهای رشته نول رو اضافه میکنن.اون دستور که نوشتید هم یعنی مشخص کردن دستی انتهای رشته.ک گاهی لازمه.
حالا در این برنامه شما دارید رشته ها رو جابجا میکنید مثلا:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا اگه بگیم از 0 شروع میکنیم اندیس ها رو در حافظه اینوری میشه(فرض کنید البته!)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خب حالا میای بهش اندیس 1 میدی. برنامه میاد از 1 به بعد و جای 1 کپی میکنه (جواب سوال بعدی). اینطوری میشه:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

m_hoseyny
17-02-2012, 15:25
استاد کاری که گفتید کردم ولی آخرش هم باز اسپیس ارو برد آخر ولی برنامه شما درست کار می کنه اینم کدش:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

p d
18-02-2012, 01:31
استاد کاری که گفتید کردم ولی آخرش هم باز اسپیس ارو برد آخر ولی برنامه شما درست کار می کنه
اگه مخاطب بنده هستم باید بگم که ؛ : لطف دارید ولی من استاد نیستم.

یعنی جی :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بالاخره کار میکنه یا نمیکنه :31:

m_hoseyny
18-02-2012, 18:56
حذف نمی کنه همین.

p d
18-02-2012, 23:57
:3:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]