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

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

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

strncpy تابع کپی تعداد مشخصی از کاراکتر های یک رشته در دیگری

 شکل کلی:

;(تعداد کاراکتر کپی شونده ,رشته مبدا ,نقطه ی آغازین عمل کپی+رشته مقصد)strncpy


مثال:

strncpy(str1+m;str2;n);
//end


در مثال فوق تعداد n کاراکتر ابتدایی رشته ی str2 را از کاراکتر (m+1) ام رشته ی str1 تا محل (m+n+1) کپی میکند. اگر تعداد کاراکتر هایی که در str2 وجود دارد، کمتر از مقدار n باشد، به تعداد لازم کاراکتر NULL در انتهای str1 کپی میشود.


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

- برنامه ای بنویسید که یک متن از ورودی گرفته و تمامی space های آن را (در صورت وجود) حذف کرده و آرایه ی کاراکتری جدید را چاپ نماید.


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

strcat تابع الحاق دو رشته
شکل کلی:

;(رشته مبدا ,رشته مقصد)strcat


مثال:
strcat(str1, str2);
//end
عملکرد این تابع به این صورت است که محتویات رشته ی str2 را به انتهای رشته ی str1 از مکانی که علامت NULL قرار گرفته اضافه میکند. به عنوان مثال اگر رشته ی str1 شامل کلمه ی "computer" و رشته ی str2 شامل کلمه ی "science" باشد، حاصل عملیات، ذخیره ی عبارت "computer science" در str1 میشود.

نکته: این تابع نیز تنها برای رشته های از نوع آرایه های کاراکتری تعریف شده است و برای الحاق هرگونه رشته به رشته ای از نوع string باید از عملگر + استفاده کنید.


strcmp تابع مقایسه دو رشته، موجود در cstring.h

شکل کلی:

;(رشته 2 ,رشته 1)int result=strcmp

مثال:

int result=strcmp(str1, str2);
//end

این تابع شروع به مقایسه ی کاراکتر های هر دو رشته از ابتدا ی آنها میکند تا به اولین مورد اختلاف برسد. اگر کاراکتر مربوط به رشته ی 1 بزرگتر از کاراکتر مربوط به رشته ی 2 باشد، مقداری مثبت یعنی عدد 1 را برمیگرداند.این بدان مفهوم است که str1>str2. هم چنین به عکس اگر کاراکتر مربوط به رشته ی 1 کوچکتر از کاراکتر مربوط به رشته ی 2 باشد، مقداری منفی یعنی عدد -1 را به مفهوم اینکه str1<str2 است، بر میگرداند. اگر دو رشته با هم مساوی باشند، مقدار 0 برگردانده میشود.


strcpy تابع انتساب رشته های کاراکتری، موجود در cstring.h

شکل کلی تابع:

;(رشته مبدا ،رشته مقصد)strcpy

مثال:
strcpy(str1, str2);

strcpy(str, "Computer");

//end


تذکر:
1. کپی کردن هر گونه رشته در رشته ای از نوع string به واسطه ی دستور انتساب(=) صورت میگیرد. بنابراین هیچ یک از پارامتر ها strcpy نمی تواند از نوع string باشد.
2. مراقب باشید که رشته ی مقصد طول کوچکتری نسبت به رشته ی مبدا نداشته باشد.


رشته هایی که تا اینجا بر روی آنها بحث کردیم، به رشته های زبان 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 را در هر کجای برنامه به رشته ی دیگری با طول متفاوت مقدار دهی کرد و چنانچه پیشتر گفته شد، مدیریت حافظه از نظر طول رشته بر عهده ی برنامه نویس نیست.



  • کل صفحات:2  
  • 1
  • 2
  •