تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 6 از 6

نام تاپيک: تشخیص طول یک رشته در c++

  1. #1
    داره خودمونی میشه Mohammad_Virus's Avatar
    تاريخ عضويت
    Apr 2009
    محل سكونت
    کاشان
    پست ها
    73

    2 تشخیص طول یک رشته در c++

    بازم سلام. توی c++ من رشته ها رو اینطوری تعریف می کنم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حالا می خوام بدونم بعد از خوندنش از ورودی طول رشته چقدره. میشه از این دو تا تابع استفاده کرد:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اما یه مشکلی وجود داره. این توابع طول رشته رو محاسبه می کنن ولی اگه جایی از رشته کاراکتر اسپیس وجود داشته باشه از اونجا به بعد رو جزء طول رشته حساب نمی کنن و طول رشته رو تا قبل از کاراکتر اسپیس برمی گردونن. راه حل یا توابع جایگزینی وجود داره؟ میشه به صورت دستی این توابع رو نوشت؟

  2. #2
    کـاربـر بـاسـابـقـه saeed_136915's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    The Land of Skyrim
    پست ها
    2,715

    پيش فرض

    بازم سلام. توی c++ من رشته ها رو اینطوری تعریف می کنم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حالا می خوام بدونم بعد از خوندنش از ورودی طول رشته چقدره. میشه از این دو تا تابع استفاده کرد:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اما یه مشکلی وجود داره. این توابع طول رشته رو محاسبه می کنن ولی اگه جایی از رشته کاراکتر اسپیس وجود داشته باشه از اونجا به بعد رو جزء طول رشته حساب نمی کنن و طول رشته رو تا قبل از کاراکتر اسپیس برمی گردونن. راه حل یا توابع جایگزینی وجود داره؟ میشه به صورت دستی این توابع رو نوشت؟
    سلام
    تابع length واسش فرقی نمیکنه داخل رشته اسپیس باشه یا نباشه، طول رشته رو برمیگردونه. شما از کدوم کامپایلر استفاده میکنین؟؟

  3. این کاربر از saeed_136915 بخاطر این مطلب مفید تشکر کرده است


  4. #3
    داره خودمونی میشه Mohammad_Virus's Avatar
    تاريخ عضويت
    Apr 2009
    محل سكونت
    کاشان
    پست ها
    73

    پيش فرض

    سلام
    تابع length واسش فرقی نمیکنه داخل رشته اسپیس باشه یا نباشه، طول رشته رو برمیگردونه. شما از کدوم کامپایلر استفاده میکنین؟؟
    از vs10 استفاده میکنم. چند بار امتحان کردم. همیشه نتیجه همینه. خودتون یه بار تست کنید
    وقتی موقع تعریف، بهش مقدار اولیه میدم این مشکل نیست ولی وقتی از ورودی میخونمش اینطوریه

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    مثلا این یه برنامه ساده که نوشتم. مقدار gg gggggg رو بهش میدم ولی عدد 2 چاپ میشه
    Last edited by Mohammad_Virus; 19-05-2013 at 21:26.

  5. #4
    کـاربـر بـاسـابـقـه szh_1367's Avatar
    تاريخ عضويت
    Apr 2007
    پست ها
    1,007

    پيش فرض

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

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    مثلا این یه برنامه ساده که نوشتم. مقدار gg gggggg رو بهش میدم ولی عدد 2 چاپ میشه
    دلیلش چاپ عدد دو رو خدمت شما عرض میکنم راه حل رو خودتون پیدا کنید

    دستور cin هنگامی که به مقادیر جداکننده همانند space و tab میرسد بقیه رشته رو نادیده میگیره به همین دلیل رشته شما طولی برابر دو خواهد گرفت

    شما باید از تابعی برای دریافت استفاده کنید که space و tab و .... رو نیز به عنوان ورودی در نظر بگیرد

  6. 2 کاربر از szh_1367 بخاطر این مطلب مفید تشکر کرده اند


  7. #5
    کـاربـر بـاسـابـقـه saeed_136915's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    The Land of Skyrim
    پست ها
    2,715

    پيش فرض

    بله همونطور که گفتن مشکل از length نیست و cin کامل نمیخونه. میتونید اینجوری بنویسین:

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

  8. این کاربر از saeed_136915 بخاطر این مطلب مفید تشکر کرده است


  9. #6
    داره خودمونی میشه Mohammad_Virus's Avatar
    تاريخ عضويت
    Apr 2009
    محل سكونت
    کاشان
    پست ها
    73

    پيش فرض

    دمتون گرم
    به این موضوع فکر نکرده بودم

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

    مرسی دوستان

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •