منبع اصلی نوشتار زیر در این لینک قرار دارد

کار با string (رشته) در ++C

 string کار با string (رشته) در ++C

یکی از ویژگی های مهم زبان برنامه نویسی سی پلاس پلاس نسبت به زبان سی وجود کلاس و نوع داده string (رشته) است که کار با کاراکتر ها و متن ها را بسیار آسان می کند و با متد هایی که در اختیار می گذارد برنامه نویسی را برای ما بسیار شیرین و جذاب می کند و مانع آن می شود که وقت ما برای نوشتن خیلی از توابع به هدر برود.

برای اینکه بتوانیم از رشته ها (String)   استفاده کنیم  باید هدر یا کتابخانه آن را به برنامه متصل کنیم :

#include <string>

string  (رشته)  نوعی گونه اطلاعاتی است که کاراکتر یا کاراکتر هایی را در خود نگه می دارد مثل  “Hello world” ,  “A” , “1″ , ” ” ,  “”  .

برای ساختن شی از نوع رشته باید مانند خط زیر عمل کنیم:

string str1 = "Football is my fav sport,you can play Football every place.";

در بالا من رشته ای به اسم str1  ایجاد کرده ام که مقدار “Football is my fav sport,you can play Football every place.” دارد.

حالا که ایجاد یک رشته را یاد گرفتیم می ریم سراغ متد ها و توابع مربوط به رشته ها تا ببینیم چطور می شود رشته ها را دستکاری کاری کرد و تغیراتی روی آن ها انجام داد .

تابع عضو  .size() :

تابع size() تعداد کاراکتر های یا همان طول رشته را به عنوان خروجی برمی گرداند و اینگونه استفاده می شود :

str1.size()

تابع عضو .empty() :

متد empty می گه که رشته خالی است یا پر اگر تابع مقدار یک را برگرداند یعنی رشته هیچ کاراکتری ندارد و مساوی “” است ، نحوه ی استفاده از آن را در  پایین        می بینید:

str1.empty()

عملگر [ ]  ( oprator []) :

رشته ی str1  را که در بالا تعریف کردیم را در نظر بگیرید فرض کنید می خواهید به کاراکتر ششم آن دسترسی داشته باشید و از آن استفاده کنید یا آن را تغییر دهید این موقع است که از اپراتور [ ]  به مانند زیر استفاده می کنیم :

str1[5]

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

تابع عضو  (append(string .  :

این تابع عضو رشته ای را که درون پرانتز آمده به ته رشته ای که این تابع روی آن انجامم شده اضافه می کند طریقه ی استفاده :

str1.append(str2);

تابع عضو (erase(int i,int j . :

این تابع از کاراکتر  i  ام به اندازه  j  کاراکتر از رشته  پاک می کند  مانند قطعه کد زیر :

str1.erase(24,34);

تابع عضو   (& insert(int n,const sting  :

این تابع از کاراکتر n  رشته ای که این تابع روی آن آمده شروع می کند به وارد کردن یک رشته :

str1.insert(25,"basketball is beter.");

تابع عضو ( find(string   . :

این تابع از سمت چپ رشته شروع به سرچ می کند تا رشته ای را که در بین دو پرانتز آمده را پیدا کند ،توجه کنید که به محض رسیدن به اولین تشابه دیگر کار را ادامه نمی دهد .بعد از پیدا کردن رشته مورد نظر در آن یکی رشته مکانی که اولین خانه زیر رشته از آن شروع می شود را برمی گرداند.

str1.find("is")

عملگر operator + :

با استفاده از این عملگر می توانید دو رشته را به هم متصل کنید مانند مثال زیر :

string str3 = "a";
	string str4 = "b";
	string str5 = "";
	str5 = str3 + str4;

 

عملگر operator +=  :

این عملگر مانند تابع append که در بالا آمده است عمل می کند به مثال زیر توجه کنید :

str5 += str3;

این عمگر str3  را به ته str5  اضافه می کند.

 

تابع عضو  (compare(string  .  :

این تابع رشته ای را که تابع رویش عمل می کند با رشته درون پرانتز مقایسه می کند اگر مساوی بودند عدد ۰ بازگردانده می شود اگر رشته درون پرانتز بزرگ تر بود عدد ۱ اگر نه عدد -۱ باز گردانده می شود .نحوه استفاده را می بینید :

str1.compare(str2)

متد clear   هم محتویات درون  آرایه را پاک می کند یا به عبارتی مساوی “”  قرار می دهد .

در زیر نمونه کدی از همه ی آنچه در بالا گفته شد می بینید

// string C++.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <string>

using namespace std;

int main()
{
	//init string
	string str1 = "Football is my fav sport,you can play Football every place.";
	string str2 = "don't play football in bad battle,it is dangerous.";

	//.size() show length of string
	cout<< str1.size()<< endl<< endl;

	//.empty() if string is empty return 1 else return 0.
	cout<< str1.empty()<< endl<< endl;

	//oprator [] :you can access to i th character.
	cout<< str1[5]<< endl<< endl;

	//.append(string ) :append string to end of other string.
	str1.append(str2);
	cout<< str1<< endl<< endl;

	//.erase(int i,int j) :Delet form charcter i th and reply that j time. 
	str1.erase(24,34);
	cout<< str1<< endl<< endl;

	//.insert(int n,const sting &) : from character n program start embed new string in other string.
	str1.insert(25,"basketball is beter.");
	cout<< str1<< endl<< endl;

	//.find(string) search string form left in other string and return position of it.
	cout<< str1.find("is")<< endl<< endl;

	//.rfind(string) search string form right in other string and return position of it.
	cout<< str1.rfind("is")<< endl<< endl;

	//operator + : you can connect too string or more by +
	string str3 = "a";
	string str4 = "b";
	string str5 = "";
	str5 = str3 + str4;
	cout<< str5<< endl<< endl;

	//operator += :like .append(string )
	str5 += str3;
	cout<< str5<< endl<< endl;

	//.compare(string) : do compration operator on to string if to sting equal return 0 if first was biger than other return -1 else return +1.
	cout<< str1.compare(str2)<< endl<< endl;

	//.clear() :assign string to "".
	str1.clear();
	cout<< str1<< endl<< endl;
}
//open-mind.ir

digg کار با string (رشته) در ++C   reddit کار با string (رشته) در ++C   stumbleupon کار با string (رشته) در ++C   yahoo buzz کار با string (رشته) در ++C   dzone کار با string (رشته) در ++C   facebook کار با string (رشته) در ++C   delicious کار با string (رشته) در ++C   dotnetkicks کار با string (رشته) در ++C   dotnetshoutout کار با string (رشته) در ++C   linkedin کار با string (رشته) در ++C   technorati کار با string (رشته) در ++C   twitter کار با string (رشته) در ++C   google buzz کار با string (رشته) در ++C   



برچسب ها : , ,

به سیاره لینوکس امتیاز دهید

به اين صفحه امتياز دهيد