القائمة الرئيسية

الصفحات

C - Strings / النصوص

Strings / النصوص في لغة c

 السلاسل هي في الواقع مصفوفة أحادية البعد من الأحرف منتهية بحرف فارغ '\ 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
الصفحة التالية                                                                الصفحة السابقة 
هل اعجبك الموضوع :

تعليقات