السلاسل هي في الواقع مصفوفة أحادية البعد من الأحرف منتهية بحرف فارغ '\ 0'. وبالتالي ، تحتوي السلسلة المنتهية بقيمة خالية على الأحرف التي تتكون منها السلسلة متبوعة بعلامة فارغة .
يُنشئ الإعلان والتهيئة التاليان سلسلة تتكون من كلمة "Hello". للاحتفاظ بالحرف الفارغ في نهاية المصفوفة ، يكون حجم مصفوفة الأحرف التي تحتوي على السلسلة واحدًا أكثر من عدد الأحرف في كلمة "مرحبًا".
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
إذا اتبعت قاعدة تهيئة المصفوفة ، فيمكنك كتابة العبارة أعلاه على النحو التالي -
char greeting[] = "Hello";
فيما يلي عرض الذاكرة للسلسلة المحددة أعلاه في C / C ++ -
في الواقع ، لا تضع الحرف الفارغ في نهاية ثابت السلسلة. يضع مترجم C تلقائيًا '\ 0' في نهاية السلسلة عندما يقوم بتهيئة المصفوفة. دعونا نحاول طباعة السلسلة المذكورة أعلاه -
#include <stdio.h> int main () { char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; printf("Greeting message: %s\n", greeting ); return 0; }
عندما يتم تجميع التعليمات البرمجية أعلاه وتنفيذها ، فإنها تنتج النتيجة التالية -
Greeting message: Hello
يدعم C نطاقًا واسعًا من الوظائف التي تتعامل مع السلاسل الخالية -
الأب رقم. | الوظيفة والغرض |
---|---|
1 | strcpy (s1 ، s2) ؛ ينسخ السلسلة s2 إلى السلسلة s1. |
2 | strcat (s1 ، s2) ؛ يربط السلسلة s2 بنهاية السلسلة s1. |
3 | strlen (s1) ؛ تُرجع طول السلسلة s1. |
4 | strcmp (s1 ، s2) ؛ تُرجع 0 إذا كانت s1 و s2 متطابقتين ؛ أقل من 0 إذا كانت s1 <s2 ؛ أكبر من 0 إذا كانت s1> s2. |
5 | strchr (s1 ، الفصل) ؛ إرجاع مؤشر إلى التواجد الأول للحرف ch في السلسلة s1. |
6 | strstr (s1 ، s2) ؛ إرجاع مؤشر إلى التواجد الأول للسلسلة s2 في السلسلة s1. |
يستخدم المثال التالي بعض الوظائف المذكورة أعلاه -
#include <stdio.h> #include <string.h> int main () { char str1[12] = "Hello"; char str2[12] = "World"; char str3[12]; int len ; /* copy str1 into str3 */ strcpy(str3, str1); printf("strcpy( str3, str1) : %s\n", str3 ); /* concatenates str1 and str2 */ strcat( str1, str2); printf("strcat( str1, str2): %s\n", str1 ); /* total lenghth of str1 after concatenation */ len = strlen(str1); printf("strlen(str1) : %d\n", len ); return 0; }
عندما يتم تجميع التعليمات البرمجية أعلاه وتنفيذها ، فإنها تنتج النتيجة التالية -
strcpy( str3, str1) : Hello strcat( str1, str2): HelloWorld strlen(str1) : 10
الصفحة التالية الصفحة السابقة
تعليقات
إرسال تعليق