تبلیغات
برنامه نویسی C++ - آموزش و سورس برنامه ی سی پلاس پلاس - مطالب ابر کاراکتر
برترین پیشنهاد

برنامه نویسی C++ - آموزش و سورس برنامه ی سی پلاس پلاس

بزرگترین پایگاه آموزش سی پلاس پلاس و سورس تمام برنامه های آن

برنامه ای که نحوه عملکرد دو تابع _strupr و _strlwr را نشان میدهد:

#include <iostream>
#include <string>
using namespace std;
void main()
{
   char string[] = "The String to End All Strings!";
     cout<<"Mixed:\n"<<string<<endl;
       cout<<"Uper:\n"<<strupr(string)<<endl;
         char* lwr_str=strlwr(string);
           cout<<"Lower:\n"<<lwr_str<<endl;
}

//end


یه تمرین جالب برای کار با آرایه های کاراکتری:

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


ادامه مطلب(کد برنامه)

برنامه ی شمارنده ی تعداد تکرار هر حرف در متن ورودی که البته برای حروف کوچک کاربرد داره.


ادامه مطلب(کد برنامه)

رشته هایی که تا اینجا بر روی آنها بحث کردیم، به رشته های زبان C معروف هستند، چرا که از زبان C به C++ انتقال یافته اند. هم چنین هیچ یک از عملگر های C++ بر روی رشته های C عمل نمی کنند. اما در C++ استاندارد کلاسی با نام string در سرفایل string.h یا cstring.h فراهم شده تا بسیاری از عملیات روی رشته هایی که بصورت آرایه ای از کاراکتر ها هستند را تسهیل کند.

تعریف رشته ای از نوع string:
تعریف رشته از نوع string بسیار آسان و به صورت کلی زیر است:

;نام رشته     string
چنانکه در دستور فوق مشاهده میکنید، در هنگام تعریف اینگونه رشته ها طول رشته به هیچ عنوان ذکر نمیشود و مدیریت حافظه از نظر میزان فضای لازم برای یک رشته به عهده ی خود کامپایلر میباشد.

مقدار دهی به رشته های string:
1.می توان رشته را بهصورت مستقیم مقدار دهی اولیه کرد:

string str="Hello";
//end
2.می توان رشته را به واسطه ی رشته ی دیگری مقدار دهی کرد:
char s[]="Hello";
string str=s;

string s1="Hello";
string s2=s1;

//end

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



اینم یه تمرین برای کاراکتر ها:

- برنامه ای بنویسید که یک متن از ورودی گرفته(انتهای متن Enter باشد) و تعداد کاراکتر های استفاده شده در آن را نمایش دهد.(با حداکثر 2 متغیر)


ادامه مطلب(کد برنامه)

آرایه های کاراکتری به عنوان آرگومان تابع:

چون رشته ها در زبان C++ همان آرایه های یک بعدی است که از نوع کاراکتری است. شیوه ی ارسال رشته ها به توابع همانند آرایه است، یعنی در آرگومان تابع نام رشته ذکر میشود و پارامتر معادل آن میتواند آرایه ای از کاراکتر ها با طول معیّن باشد.

شکل کلی:

void f1(char []);
int main()
{
    char s[21];
    ...
    f1(s);
    return 0;
}

void f1(char s[])
{
    ...
}

//end


مقدار دهی اولیه به آرایه های کاراکتری:

برای مقدار دهی اولیه به آرایه های کاراکتری دو روش وجود دارد:
1.

char ch[4] = "ali";

char ch[] = "computer";

//end

2.
char ch[8] = {'p','r','o','g','r','a','m','\0'};

char ch[] = {'a','l','i','\0'};

//end

ورودی - خروجی رشته ها:
قبلا دستورات cin و cout را برای ورودی و خروجی داده ها بررسی کرده ایم. از همین دستورات می توان برای ورودی - خروجی رشته ها استفاده کرد. در دستورات زیر cin رشته ی ch را می خواند و cout آن را در صفحه نمایش میدهد:

char ch[31];
cin>>ch;
cout<<"ch is: "<<ch;

//end

خواندن رشته ها با تابع get():
get یک تابع عضو(Member Function) شی(Object) ورودی cin است و کاربرد های مختلفی دارد:
1. کاربرد cin.get() برای خواندن یک کاراکتر:
char ch;
ch=cin.get();

//end

2. کاربرد cin.get() برای خواندن رشته ها:
1)cin.get(نام رشته, طول رشته);
2)cin.get(نام رشته, طول رشته, 'جدا کننده');

//end
مثال:

char x[20];
cin.get(8,15);
cin.get(5,15,'.');

//end

تقاوت cin و cin.get() در خواندن رشته ها:
در دستور cin.get فقط کلید Enter، انتهای رشته را مشخص میکند، مگر اینکه برنامه نویس کاراکتر دیگری را برای این منظور مشخص کند. در این دستور رشته میتواند حاوی فاصله(Space) و یا Tab باشد. در حالی که در دستور cin، فاصله(Space) و Tab نیز به عنوان جدا کننده تلقّی شده، انتهای رشته را مشخص می کنند.





تعریف رشته ها:

رشته ها در زبان c++ به سه شکل زیر تعریف و معرفی میشوند:
1.آرایه کاراکتری(رشته محدود)
2.اشاره گر کاراکتری (رشته ی نا محدود)(در جلسات آینده با فراگیری اشاره گر ها کاملا با این موضوع آشنا خواهید شد)
3.کلاس استاندارد string (در جلسه آینده)

مثال:

char s[10];
char s[5][10];

//end

نکته: در زبان C++، انتها ی رشته عدد 0 یا کاراکتر '\0' یا 'x0' قرار دارد و علامت پایان رشته جزو طول رشته خواهد بود ولی قابل استفاده نیست. یعنی هنگامی که داشته باشیم:

char ch[10];

//end
فقط می توانیم از 9 کاراکتر در رشته ی فوق استفاده کنیم زیرا کاراکتر آخر مربوط به علامت انتهای رشته به نام تهی(NULL) است.





این برنامه از کد اسکی 0 شروع کرده و کاراکتر مربوطه را تایپ میکند و تا 127 ادامه دارد:

#include <iostream.h>

void main()
{
    char a;
    cout<<"ASCII Codes:"<<endl;
    for(int b=0;b<=127;b++)
    {
        a=b;
        cout<<a<<" : "<<b<<"\t\t";
    }
}

//end


یه برنامه برای آسنایی با کاراکتر ها:

- برنامه ای بنویسید که یک کاراکتر از ورودی گرفته و کد اسکی آن را چاپ نماید.


ادامه مطلب(کد برنامه)