c-style string
تعرف على أنها سلسلة منتهية من المحارف التي تنتهي بالمحرف الصفري أو الخامل NULL و هذا مثال على هذا الشكل :
char str[]=”this is c-style”
تحديد الحجم
يمكننا أن نصرح و نحدد الحجم، أو أن نحدد الحجم من خلال العبارة التمهيدية و في حال حددنا الحجم أكبر من حجم السلسلة التمهيدية فإن بقية الجحم يستند له الصفر أو الNULL تلقائياً لحين استخدامها :
تحويل من شكل سي بلس بلس إلى c-style :
يمكننا أن نجري هذا التحويل كما في المثال التالي:
#include<iostream>
using namespace std;
void main()
{
const char *s;
string state = "arabteam";
s = state.c_str();
cout<<s[6]<<endl;
}الخرج:
a
و ذلك باستخدام العضو الدالي ( )c_str
لإدخال و الإخراج
لإدخال السلسلة نستخدم cin مع اسم السلسلة و كذلك عند الإخراج فإننا نستخدم cout مع اسم السلسلة أو نستخدم توابع الإدخال المعروفة كما يلي :
cin>>str_name; cout<<str_name;
أو
مثال:
#include<iostream.h>
void main()
{
char name[256],idnumber[15];
cin.getline(idnumber,15,':');
cin.getline(name,256);
cout<<name<<" id "<<idnumber<<endl;
}الخرج:
125-569-14:ahmad mohammad
ahmad mohammad id 125-569-14
بعض التوابع التي نستخدمها لـc-style string :
و الموجودة في مكتبة الstring
strcpy()
الوظيفة: نسخ قيمة سلسلة إلى أخرى
الوسطاء :و سيطين أحدهما المنشوخ منه و الاخر المنسوخ إليه .
strlen()
الوظيفة:يعيد التابع عدد محارف السلسلة دون المحرف الصفري .
الوسطاء : وسيط واحد و هو اسم السلسلة .
strcat()
الوظيفة: يقوم بنسخ محتوى إحدى سلسلتين و زضعه في نهاية الأخرى.
مثال:
#include<iostream.h>
#include<string.h>
void main()
{
char name [10]="ahmad",namecpy[10];
char surename [10]="khaled";
cout<<"strcpy();\n";
strcpy(namecpy,name);
cout<<namecpy<<endl;
cout<<"strlen();\n"<<strlen(name)<<endl;
cout<<"strcat();"<<endl;
strcat(name,surename);
cout<<name<<endl;
}الخرج :
strcpy();
ahmad
strlen();
5
strcat();
ahmadkhaled
ملاحظة : المادة الأساسية لهذين الدرسين من الملفين التاليين :