דף
הבית>> פרק 5>>מטריצות>>מחרוזות>>
פונקציות סיפריה |
פונקציות סיפריה לטיפול במחרוזות:
הגיע הזמן להכיר מספר פונקציות שימושיות לטיפול במחרוזות
הכלולות בספריה string.h :
- (strlen(str מקבלת מחרוזת
str ומחזירה ערך שלם, המציין את אורך המחרוזת על פי המקום של התו המסיים
אותה.
- (strcmp(str1, str2 מקבלת
שתי מחרוזות ומשווה בניהן באופן לקסיקוגרפי. היא מחזירה:
- ערך שלילי אם str1 קטנה מ - str2.
- אפס אם str1 שווה ל - str2.
- ערך חיובי אם str1 גדולה מ - str2.
- (strcpy(t, s העתקת
המחרוזת s למחרוזת t.
- (strcat(str1, str2
מקבלת שתי מחרוזות str1 ו str2 ומצרפת את str2 לסופה של str1 (שירשור).
- 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 גדולה יותר.
|
|