نمایش نتایج: از 1 به 7 از 7
Like Tree2 لایک
  • 1 Post By Ahmad110
  • 1 Post By Ahmad110

موضوع: جدا کردن قسمتی از یک رشته

Hybrid View

  1. #1
    Junior Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    5
    نقل قول نوشته اصلی توسط Ahmad110 نمایش پست ها
    دوست عزیز شما نوشتید رشته اما متغییر رو بصورت انتجر (int) انتخاب کردید . کد شما کلا اشتباهه .
    مورد دوم اینکه باید در نظر داشته باشید یک رشته خودش قابلیت دریافت کاراکترها بصورت آرایه رو داره و شما میتونید هر کاراکتری رو که نیاز دارید از داخل رشته فراخوانی کنید .
    ممنون از راهنماییتون دوست عزیز .
    فقط اگه امکانش هس میشه لطف کنین یه مثال همراه با کد بزنین که بهتر متوجه بشم ؟

  2. #2
    Senior Member
    تاریخ عضویت
    Feb 2017
    نوشته ها
    153
    نقل قول نوشته اصلی توسط alishuk نمایش پست ها
    ممنون از راهنماییتون دوست عزیز .
    فقط اگه امکانش هس میشه لطف کنین یه مثال همراه با کد بزنین که بهتر متوجه بشم ؟
    کد:
    #include <Arduino.h>
    
    char *name = "ahmad";
    char result[5] ;
    
    void setup()
    {
        Serial.begin(9600);
        for (uint8_t i = 0; i <= sizeof(result) - 1; i++)
            {
                result[i] = name[i + 2];
            }
        
    }
    void loop()
    {
        Serial.println(result);
        delay(2000);
    }
    لایک کردن

  3. #3
    Junior Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    5
    نقل قول نوشته اصلی توسط Ahmad110 نمایش پست ها
    کد:
    #include <Arduino.h>
    
    char *name = "ahmad";
    char result[5] ;
    
    void setup()
    {
        Serial.begin(9600);
        for (uint8_t i = 0; i <= sizeof(result) - 1; i++)
            {
                result[i] = name[i + 2];
            }
        
    }
    void loop()
    {
        Serial.println(result);
        delay(2000);
    }
    یه دنیا ممنون خیلی کارم جلو افتاد . فقط میشه یه توضیح کوچیک بدین که اون حلقه for چطور عمل میکنه ؟ شرمنده من تازه شرو کردم به برنامه نویسی یکم مبتدی ام .

  4. #4
    Senior Member
    تاریخ عضویت
    Feb 2017
    نوشته ها
    153
    نقل قول نوشته اصلی توسط alishuk نمایش پست ها
    یه دنیا ممنون خیلی کارم جلو افتاد . فقط میشه یه توضیح کوچیک بدین که اون حلقه for چطور عمل میکنه ؟ شرمنده من تازه شرو کردم به برنامه نویسی یکم مبتدی ام .
    خیلی ساده هستش ، ببینید ما یک متغیر از نوع پوینتر (pointer) به اسم name داریم که رشته ahmad داخلش قرار داره . حالا چرا نوع متغیر رو از نوع پوینتر انتخاب کردیم ؟ چون تمایل داشتیم رشته ما که شامل 5 کاراکتر هستش به ترتیب و بصورت مستقیم در آدرسی از حافظه رم قرار بگیره یعنی ما میتونستیم متغییر رو بصورت [5]name یا []name هم انتخاب کنیم و از پوینتر استفاده نکنیم .
    رشته ها مجموعه ای از کاراکترها هستن پس ما میتونیم هر وقت که خواستیم هر کاراکتری رو از داخل رشته بخونیم و شکلش هم بصورت زیر هستش :
    فرض کنید ما رشته ای به نام Ahmad رو داخل متغییر name داریم
    کد:
    char *name = "Ahmad" ;
    و میخوایم اولین حرف رشته رو بخونیم . بنابر این به یک متغییر جدید از نوع کاراکتر نیاز داریم که حرف اول رو بخونیم و در اون ذخیره کنیم .
    کد:
    char name1 = name[0];
    حالا اگه name1 رو چاپ کنیم به ما کاراکتر A رو برمیگردونه . حال اگه کاراکترهای بیشتری رو بخوایم بخونیم ، باید اونا رو داخل یک آرایه بزاریم و اگه بخوایم بصورت دستی همه رو صدا بزنیم کد ما خیلی شلوغ و خسته کننده میشه . پس در اینجا از یک حلقه کمک میگیریم که به ترتیب کاراکترها رو بخونه و پشت سر هم در آرایه جدید قرار بده .
    لایک کردن

  5. #5
    Junior Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    5
    نقل قول نوشته اصلی توسط Ahmad110 نمایش پست ها

    حالا اگه name1 رو چاپ کنیم به ما کاراکتر A رو برمیگردونه . حال اگه کاراکترهای بیشتری رو بخوایم بخونیم ، باید اونا رو داخل یک آرایه بزاریم و اگه بخوایم بصورت دستی همه رو صدا بزنیم کد ما خیلی شلوغ و خسته کننده میشه . پس در اینجا از یک حلقه کمک میگیریم که به ترتیب کاراکترها رو بخونه و پشت سر هم در آرایه جدید قرار بده .

    یه دنیا ممنون بابت توضیحات . راسی عیدتونم مبارک

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO