1. سلام میهمان گرامی


    با سلام ، به انجمن حرفه ای ها خوش آمدید ، برای استفاده از حداکثر امکانات انجمن ( ارسال مطلب ، قابلیت آپلود فایل ، وبلاگ ، گالری تصویر اختصاصی ، بازیکده ، فروشگاه ، چت و صد ها امکانات دیگر ) و دریافت آخرین مطالب و فایل ها و داشتن مجوز دسترسی بیشتر می توانید به صورت رایگان در انجمن عضو شوید و از امکانات فراوان و نامحدود آن استفاده کنید ثبت نام در انجمن بسیار آسان و در کمتر از 30 ثانیه امکان پذیر است در ضمن انجمن و مدیران آن و سیستم های هوشمند آن از هویت شما حفاظت و امنیت شما .را برقرار می کنند در صورتی که قبلا عضو شده اید هم اکنون وارد حساب کاربری خود شوید ، با تشکر از شما کاربر گرامی

    عضویت/ورود انجمن        آموزش و کمک

PRO Cpp Pro Class ( String Explode )

شروع موضوع توسط nimix3 22/12/12 در انجمن Cpp مثال های برنامه نویسی به زبان

    • مدیر کل تالار

    nimix3 مدیر کل تالار

    تاریخ عضویت:
    29/9/12
    تعداد ارسال ها:
    202
    تشکر شده:
    50
    امتیاز:
    1,041
    جنسیت:
    مرد
    شغل :
    CEO @ ArioWeb Tech Media Inc.
    محل سکونت:
    اصفهان
    وب سایت:
    Ratings Received:
    +72 / 1 / -1
    نام و نام خانوادگی:
    نیما اخلاقی
    کشور محل اقامت:
    ایران
    شهر محل اقامت:
    اصفهان
    رشته ی تحصیلی:
    فناوری اطاعات
    زمینه تخصص:
    فناوری اطلاعات ، برنامه نویسی ، امنیت اطلاعات
    Yahoo! Messenger:
    nimix3
    Facebook:
    nimix3
    images.jpg

    و بالاخره و به هر سختی که بود ، تابع تجزیه رشته به آرایه را نوشتم ، به زبان سی ، لطفا جهت بهبود آن نظرات و
    کد های خود را به این طرح بیفزایید


    تابع تجزیه چیست ؟

    تابعی است که یک رشته به عنوان آرگومان دریافت کرده و با توجه به کاراکتر جدا کننده آن را تکه تکه کرده
    و در آرایه ای از رشته یا کاراکتر ها قرار میدهد ، در سی با استفاده ار کلاس وکتور که کلاس رشته را آن را پشتیبانی می کند و جزئی از آن است امکان نوشتن این تابع را به ما می دهد



    : کد های تابع


    کد:
    #include <string>
    #include <vector>
    #include <iostream>
    #include <cstring>
    using namespace std;
     
    vector<string*>* explode(string str, char delimiter)
    {
        vector<string*>* vect = new vector<string*>();
        char* res = NULL;
        const char* a = str.c_str();
        char* XString = (char *)(a);
        res = strtok(XString, &delimiter);
        while(res != NULL)
        {
            string* tmp = new string(res);
            vect->push_back(tmp);
            res = strtok(NULL, &delimiter);
        }
        return vect;
    }
    : کدهای مثال



    کد:
    int main()
    {
        vector<string*>* vect = explode("test+t+tc+cs+d+f+tst+fff", '+');
        size_t size = vect->size();
        for(size_t i = 0; i < size; ++i)
            cout<<*vect->at(i)<<endl;
        // free memory
        for(size_t i = 0; i < size; ++i)
            delete(vect->at(i));
        delete(vect);
        _getch();
        return 0;
    }


    a00384.png



    • مدیر کل تالار

    nimix3 مدیر کل تالار

    تاریخ عضویت:
    29/9/12
    تعداد ارسال ها:
    202
    تشکر شده:
    50
    امتیاز:
    1,041
    جنسیت:
    مرد
    شغل :
    CEO @ ArioWeb Tech Media Inc.
    محل سکونت:
    اصفهان
    وب سایت:
    Ratings Received:
    +72 / 1 / -1
    نام و نام خانوادگی:
    نیما اخلاقی
    کشور محل اقامت:
    ایران
    شهر محل اقامت:
    اصفهان
    رشته ی تحصیلی:
    فناوری اطاعات
    زمینه تخصص:
    فناوری اطلاعات ، برنامه نویسی ، امنیت اطلاعات
    Yahoo! Messenger:
    nimix3
    Facebook:
    nimix3
    دوستان در سایت زیر کد تابع تجزیه را به صورت زیر نوشته است ، زیاد تفاوت چندانی ندارد



    کد:
    #include <iostream>
    #include <vector>
    #include <string>
     
    using namespace std;
     
    vector<string> explode( const string &delimiter, const string &explodeme);
     
    int main(int argc, char *argv[])
    {
        string str = "I have a lovely bunch of cocoa nuts";
        cout<<str<<endl;
        vector<string> v = explode(" ", str);
        for(int i=0; i<v.size(); i++)
            cout <<i << " ["<< v[i] <<"] " <<endl;
    }
     
    vector<string> explode( const string &delimiter, const string &str)
    {
        vector<string> arr;
     
        int strleng = str.length();
        int delleng = delimiter.length();
        if (delleng==0)
            return arr;//no change
     
        int i=0;
        int k=0;
        while( i<strleng )
        {
            int j=0;
            while (i+j<strleng && j<delleng && str[i+j]==delimiter[j])
                j++;
            if (j==delleng)//found delimiter
            {
                arr.push_back(  str.substr(k, i-k) );
                i+=delleng;
                k=i;
            }
            else
            {
                i++;
            }
        }
        arr.push_back(  str.substr(k, i-k) );
        return arr;
    }
    Source Website : www.zedwood.com

این صفحه را به اشتراک بگذارید