++C למתחילים
 
דף הבית>> פרק 5>>מטריצות>>מחרוזות>> פונקציות סיפריה

פונקציות סיפריה לטיפול במחרוזות:

הגיע הזמן להכיר מספר פונקציות שימושיות לטיפול במחרוזות הכלולות בספריה string.h :

  1. (strlen(str מקבלת מחרוזת str ומחזירה ערך שלם, המציין את אורך המחרוזת על פי המקום של התו המסיים אותה.
  2. (strcmp(str1, str2 מקבלת שתי מחרוזות ומשווה בניהן באופן לקסיקוגרפי. היא מחזירה:
    • ערך שלילי אם str1 קטנה מ - str2.
    • אפס אם str1 שווה ל - str2.
    • ערך חיובי אם str1 גדולה מ - str2.
  3. (strcpy(t, s העתקת המחרוזת s למחרוזת t.
  4. (strcat(str1, str2 מקבלת שתי מחרוזות str1 ו str2 ומצרפת את str2 לסופה של str1 (שירשור).
  5. strstr מציאת תת - מחרוזת במחרוזת.

נכתוב מספר דוגמאות לשימוש בפונקציות :

שימוש בפונקציה strcpy :  

#include <iostream.h> 
#include <string.h> 
#include <conio.h> 

 main() 
 { 
   char name1[10] = "moshe",name2[20]; 
   strcpy(name2, name1);
cout<<"name1="<<name1<<"name2="<<name2<<'\n'; strcpy(name2,"shalom"); cout<<"name2="<<name2<<'\n'; getch(); return; }
 

פלט התוכנית:

name1 = moshe   name2 = moshe

name2 = shalom  

בתוכנית זו התבצעה השמה ממחרוזת name1 למחרוזת name2.  

שימוש בפונקציה strlen:  

#include <iostream.h> 
#include <string.h> 
#include <process.h> 
#include <conio.h> 

 main() 
 { 
   int l; 
   char str1[25], str2[20], str3[15]; 
   l = strlen("happy new year"); 
   if(l<25) 
      strcpy(str1, "happy new year"); 
   else 
   { 
     cout<<"string can't fit into str1"; 
      exit(1); 
   } 
   if(l<20) 
    strcpy(str2, "happy new year"); 
   else 
   { 
    cout<<"string can't fit into str2"; 
     exit(1); 
   } 
   if(l<15) 
    strcpy(str3, "happy new year"); 
   else 
    { 
     cout<<"string can't fit into str3"; 
      exit(1); 
    } 
          cout<<"the length of"<<str1<<'='<<l<<'\n'; 
   getch(); 
   return 0; 
 } 
 

פלט התוכנית:

the length of happy new year = 14  

הסבר התוכנית: בתוכנית זו השתמשנו בפונקציה strlen לצורך בדיקת אורך מחרוזת לפני השמתה כדי לוודא שלא תתבצע חריגה. השתמשנו בסיפריה process.h לצורך הפקודה (exit(1.

שימוש בפונקציה strcmp:  

#include <iostream.h> 
#include <string.h> 
#include <conio.h> 

 main() 
 { 
   char word1[10] = "peace", word2[10] = "war"; 
   if(strcmp(word1,word2)<0) 
          cout<<word1<< '<' <<word2<<'\n'; 
   if(strcmp(word1,word2)>0) 
          cout<<word1<< '>' <<word2<<'\n'; 
   if(strcmp(word1,word2)==0) 
          cout<<word1<< "==" <<word2<<'\n'; 
   getch(); 
   return 0; 
}
 

פלט התוכנית:

peace < war  

הסבר התוכנית: הפונקציה strcmp מבצעת השוואה לקסיקוגרפית בין המחרוזות peace ו war . וכיוון שהמילה peace מופיעה במילון לפני המילה war ,אזי war גדולה יותר.  

הקודם הבא