פונקציות למחרוזות בספריה string.h

 

1.    הופך את הסדר של כל האותיות עד '0\' במחרוזת:

      strrev(str);

  1. השוואת מחרוזות:

א) משווה אלפבתית  בין שתי מחרוזות:

num=strcmp(str1,str2);

            ב) משווה אלפבתית  n תווים ראשונים בין שתי מחרוזות:

num=strncmp(str1,str2,4);

      ג) משווה אלפבתית  n תווים ראשונים בין שתי מחרוזות, ומפסיק את
          ההשוואה ברגע שנמצא שוני כלשהו:

num=strncmpi(str1,str2,n);

      בכל הפונקציות של סעיף זה:

אם 0 num>      אזי : str1>str2

      אם 0 num<      אזי : str1<str2

      אם 0 num=      אזי : str1=str2 .

 

  1. ממיר במחרוזת  את האותיות הגדולות לאותיות קטנות:

strlwr(str);

  1. ממיר במחרוזת  את האותיות הקטנות לאותיות גדולות:

strupr(str);

  1. מחזיר אורך מחרוזת לא כולל '0\'

num=strlen(str);

  1. העתקת מחרוזות:

א) מעתיק מחרוזת למחרוזת עד לתו '0\':

strcpy(str1,str2);

         (גם stpcpy עושה את אותה הפעולה).

 

     ב) מעתיק n איברים ממחרוזת למחרוזת:

strncpy (str1,str2,n);

      ג) יוצר העתק של str ,מחזיר מצביע להעתק שנוצר:

ptr=strdup(str);

  1. חיבור מחרוזות:

א) מוסיף את str2 ל- str1 מייד בסוף המחרוזת של str1.

     כלומר במקום הסימן '0\' שנמצא ב- str1 תושם האות הראשונה של str2   

     וכ"ו.

strcat(str1,str2);

ב) מוסיף n תווים ראשונים מ- str2   לסוף- str1. כלומר :האיבר הראשון של
   
str2 יתווסף במקום ה-'0\' שב- str1 ,האיבר השני יבוא לאחר מכן וכ"ו עד
    האיבר ה-
n –י .לאחר האיבר  ה-n –י שהתווסף יושם '0\' .

Strncat(str1,str2,n);

לדוגמא:

;AAAint str1[7]=
BBBint str2[7]=

strncat(str1,str2,2);

?

'\0'

B

B

A

A

A

      ב-str1 יהיה:

  1. הצבת תווים במחרוזת:

א) ממלא מחרוזת באות מסויימת :

Strset(str,ch);

ב) מכניס n תווים ch ל-str ,יעצור אם יפגוש '0\' .

strnset(str1,ch,13);

     או

strnset(str1,ch,strlen(str)-1);

      א) כנ"ל עם מצביעים memset.

     

  1. חיפוש תו:

א) מוצא תו ch במחרוזת str ומחזיר מצביע לאיבר הראשון שנמצא:

ptr=strchr(str,ch);

ב)מוצא את ההופעה האחרונה של ch ב- str ומחזיר מצביע לאיבר שנמצא ,

      אם לא נמצא איבר כזה הפונקציה תחזיר NULL.

Ptr=strchr(str,ch);

      ג) מחפש תו ch ב-n איברים הראשונים ומחזיר מצביע לאיבר אם נמצא,
          או
NULL אם לא נמצא:

ptr=memchr(str,ch,strlen(str));

 

  1. מחזירה את האינדקס של של האיבר הראשון שבו str1  שונה מ- str2.

num=strspn(str1,str2);

 

  1. מחזיר מספר שמייצג את האינדקס של האיבר הראשון ב- str1  שנמצא גם ב-str2 . אם לא נמצא איבר כזה יוחזר האינדקס של '0\'  שבעצם נמצא בשניהם (אורך המחרוזת).

num=strcspn(str1,str2);

 

  1. מוצא את המופע הראשון של מחרוזת str2 ב- str1, ומחזירה מצביע לאיבר הראשון ב- str1 שבו מתחילה str2. אם לא נמצא מופע כזה מוחזר NULL.

ptr=strstr(str1,str2);

 

  1. מחזירה מצביע לאיבר הראשון ב- str1  שקיים גם ב - str2.

ptr=strpbrk(str1,str2);

 

  1. מוצא ב- str1 את האיבר הראשון שלא קיים ב- str2 ,ומציבה '0\' לפני איבר זה ב- str1, מחזירה מצביע , אם לא נמצאו איברים שונים מחזירה NULL.

Str2 בעצם מגדיר סימנים מפרידים ב- str1.