ملخص عن السلاسل
مقدمة جيدة في السلاسل
السلاسل بداية : هي سلسلة من المحارف أياً كانت .
تتميز السلاسل عن المصفوفات المحرفية أن المصفوافات المحرفية محدودة الحجم بينما السلاسل string فلا و بالرغم من ذلك فإننا نستطيع أن نتعامل من المتغير string على أنه مصفوفة .
التصريح :
string teststring =”arabteam-2000”;
أو
string teststring ; teststring =”arabteam-2000”;
الإخراج :
لإخراج هذا المتغير فإنه يكيفي أن نكتب :
cout<<teststring;
الملفات الرئسية المطلوبة:
string , iostream و ذلك طبعاً باستخدام الـstandard namespace .
العمليات البدائية على السلاسل :
-عدد المحارف لسلسلة:
و نقصد بها الفواصل أو الفراغات أو أي حرف .
مثال :
#include<iostream>
#include<string>
using namespace std;
void main()
{
string teststring="the long of this line of this is=";
int i=teststring.length();
cout<<teststring<<i<<endl;
}الخرج
the long of this line of this is=33
حيث أن length قام بإعادة عدد المحارف في هذه السلسلة .
إضافة جزء إلى سلسلة :
لنفرض مثلاً أننا خزنا اسم المستخدم في سلسلة و كنيته في سلسلة أخرج و أردى إخراج الاسم و الكنية معاً بإننا يمكن دمجهما معاً في الإخراج أو بوضعهما في سلسلة جديدة و يمكننا أيضاً أن نتيح للمستخدم أن يضيف إلى نهاية السلسلة شيء ما أو أن نضيفه نحن و هذا مثال على ذلك :
#include <string>
#include <iostream>
using namespace std;
void main()
{
string firstname;
string lastname;
string fullname ;
cout<<"firstname:"<<endl;
cin>>firstname;
cout<<"lastname:"<<endl;
cin>>lastname;
fullname = firstname+lastname;
string strend;
cout<<"enter any end"<<endl;
cin>>strend;
fullname+=strend;
fullname+='.';
cout<<fullname<<endl;
}الخرج
firstname:
ahmad
lastname:
mohammad
enter any end
.
ahmadmohammad..
البحث
يمكننا البحث عن أي محرف أو كلمة وردت في سلسلة باستخدام العضو الدالي ()find و الذي يأخذ وسيطين أو وسيط ويعيد رقم المحرف الذي يوجد قبل كلمة البحث :
حالة أخذ الوسيطين :
نمردد لهذا العضو الدالي وسيطين الأول السلسلة أو المحرف المراد البحث عنها و الثاني الموضع الذي سيبدأ من عنده البحث ضمن السلسلة نأخذ المثال التالي :
#include <string>
#include <iostream>
using namespace std;
int main()
{
string str="we all love prophet mohammad yes! we do ";
int a=str.find("we",0)//strat with the begining of the line
int b=str.find("we",a+1)//strat with the a+1 character and so on>>>>>>>>>
cout<<"first position is :"<<a<<endl;
cout<<"second position is :"<<b<<endl;
int pos;
pos=str.find('m')
if(pos==string::npos)
cout<<"no m hear!"<<endl;
else
cout<<"there is m hear !"<<endl;
}الخرج
first position is :0
second position is :34
there is m hear !
استخراج سلاسل فرعية
تستخدم العضو الدالي (substr(start, length. الذي له كما ترون وسيطين ، الوسيط الأول هو رقم المحرف الذي يبدأ عنده بأخذ المقطع و length هو عدد المحارف المراد أخذها بعد المحرف الذي بُدئ به .
مثال :
#include<iostream>
#include<string>
using namespace std;
void main()
{
string str="we all pray for one god .";
string sub=str.substr(str.length()-5,5);
cout<<sub<<endl;
}الخرج
god .
تعديل السلسلة باستخدام الإدخال أو التبديل
و ذلك باستخدام العضوين الداليين
str_name.insert() و str_name.replace()
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str1="arabteam-3000";
string str2="2000";
str1.insert(str1.length()-4,str2);
cout<<str1<<endl;
str1.replace(0,4,str2);
cout<<str1<<endl;
}الخرج
arabteam-20003000
2000team-20003000
حيث لـinset وسيطن الأول رقم المحرف الذي سنبدأ بالإدخال عنده و الوسيط الثاني هو السلسلة المراد إدخالها .
و repalce يأخذ ثلاث وسطاء الأول رقم محف البداية و طول الإستبدال و السلسلة التي ستستبدل بها .
و الدرس القادم عن السلاسل ذات الشكل c-string إن أحيانا الله تعالى .