- עקוב אחרי התוכנית וציין מה היא מבצעת.
#include <stdio.h>
#include <string.h>
void main()
{
char
fname[11],lname[11],name[21];
printf("enter
your name:");
scanf("%s",fname);
printf("enter
family name:");
scanf("%s",lname);
strcpy(name,lname);
name[0]=lname[0];
name[1]='.';
name[2]='\0';
strcat(name,fname);
printf("Full
name is %s",name);
}
- עקוב אחרי התוכנית וציין את הפלט ממנה. (הסבר את משפט ה- if)
#include <stdio.h>
#include <string.h>
void main()
{
char str1[11],str2[11];
printf("enter a word:");
scanf("%s",str1);
strcpy(str2,str1);
strrev(str1);
if (!strcmp(str1,str2))
printf("your typed word is
symmetric");
else
printf("your word is not symmetric");
}
- כתוב תוכנית הקולטת שתי מחרוזות באורך כלשהו(נקבע ב- define).
התוכנית תבדוק האם המחרוזת השניה
מהווה ראש של המחרוזת הראשונה. (מופיעה בתחילתה).
- עקוב אחרי התוכנית וציין מה היא מבצעת.
#include <stdio.h>
#include <string.h>
void main()
{
char str1[11],str2[11];
printf("enter a string:");
scanf("%s",str1);
strcpy(str2,str1);
str1[strlen(str1)/2]='\0';
strrev(str2);
str2[strlen(str2)/2]='\0';
strrev(str2);
if (!strcmp(str1,str2))
printf("yes");
else
printf("No");
}
-
- כתוב תוכנית הקולטת מחרוזת באורך כלשהו (מוגדר ב- define)
, התוכנית תחשב ותדפיס את סכום קודי האסקיי של תווי המחרוזת.
- כתוב את התוכנית מסעיף a בעזרת פונקציות. כלומר , פונקציית ה- main
תגדיר ותקלוט את המחרוזת , אח"כ תעביר אותה כפרמטר לפונקציה שאתה תכתוב (נקרא לה GetAsciiSum) שתחזיר את הסכום ל- main ומשם יודפס למסך.
-
- כתוב פונקציה בוליאנית המקבלת כפרמטר מחרוזת ובודקת אם כל תוויה
ספרות.
- כתוב פונקציה המקבלת כפרמטר מחרוזת שכל תוויה ספרות , מחשבת ומחזירה
את המספר השלם שמורכב מתווי המחרוזת. אם המחרוזת שווה ל- "123"
הפונקציה תחזיר את הערך המספרי 123.
- על סמך שתי הפונקציות שכתבת בסעיפים הקודמים כתוב תוכנית (פונקציית main)
אשר 10 מחרוזות מחשבת ומדפיסה
את סכום הערכים המספריים של אותן מחרוזות שמכילות רק ספרות.
-
- כתוב פונקציה המקבלת כפרמטר מחרוזת A , תו ch ומספר שלם n . הפנקציה תכניס את התו ch במחרוזת A במקום
ה- n . שימם לב שהפונקציה צריכה לבצע הזזה ולפנות מקום עבור התו
לפני הכנסתו. ניתן להניח שיש מספיק מקום במחרוזת.
- כתוב תוכנית (main) אשר מגדירה שתי מחרוזות באורך כלשהו .
התוכנית תקלוט שתי מחרוזות ותכניס את תווי המחרוזת הראשונה למחרוזת השניה .
כל תו במחרוזת הראשונה יוכנס למחרוזת השניה במקום שיחושב באופן אקראי בתחום
שבין 0 לאורך העדכני של המחרוזת השניה. כמובן לצורך הכנסת התו במקום מסוים
יש להיעזר בפונקציה שנכתבה בסעיף א.
- בהנחה שלא קיימת הספריה string.h
- כתוב פונקציה בשם MyStrlen המקבלת כפרמטר מחרוזת ,
מחשבת ומחזירה את אורכה.
- כתוב תוכנית (main) אשר קולטת מחרוזת . התוכנית תחשב ותדפיס את אורכה בעזרת הפונקציה שכתבת
בסעיף א.
- בהנחה שלא קיימת הספריה string.h
- כתוב פונקציה בשם MyStrcpy המקבלת כפרמטרים שתי
מחרוזות A,B . הפונקציה תעתיק את A ל- B .
- כתוב תוכנית אשר מגדירה שתי מחרוזות str1,str2 . התוכנית תקלוט מחרוזת ל-
str1 ותעתיק אותה ל- str2 בעזרת הפונקציה שכתבת
בסעיף א.
- עקוב אחרי התוכנית וציין את אשר מבצעת.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void ToUpper(char A[])
{
int
i=0;
while
(A[i])
{
if
(isalpha(A[i]))
{
if (A[i]>='a' &&
A[i]<='z')
A[i]-=32;
}
else
A[i]=32;
i++;
}
}
void ToLower(char A[])
{
int
i=0;
while
(A[i])
{
if
(isalpha(A[i]))
{
if (A[i]>='A' &&
A[i]<='Z')
A[i]+=32;
}
else
A[i]=32;
i++;
}
}
void main()
{
char str1[81],str2[81],str3[81];
printf("enter a string:");
gets(str1);
strcpy(str2,str1);
ToUpper(str2);
strcpy(str3,str1);
ToLower(str3);
printf("\n%s\n%s\n%s\n",str1,str2,str3);
}
- כתוב תוכנית הקולטת משפט , ומדפיסה את המלים שמתחילות ב- R . בין
מלה למלה יכולים להיות הרבה רווחים, גם בתחילת המלה וגם בסופה. ניתן להיעזר
בתוכנית שהוסברה בכיתה.
-
- כתוב פונקציה בשם LeftTrim אשר מקבלת מחרוזת ומוחקת
מתחילתה את כל הרווחים במידה ויש.
- כתוב פונקציה בשם RightTrim אשר מקבלת כפרמטר מחרוזת
ומוחקת מסופה את כל הרווחים.
- כתוב תוכנית אשר קולטת מחרוזת ומוחקת מקצוותיה את כל הרווחים.
- עקוב אחרי התוכנית וציין את אשר מבצעת
#include <stdio.h>
#include <string.h>
void main()
{
char str1[81],str2[81];
int i,stop;
printf("enter first string:");
gets(str1);
printf("enter second string:");
scanf("%s",str2);
stop=strlen(str2);
while (strlen(str1)>=stop)
if (strncmp(str1,str2,strlen(str2))==0)
break;
else
{
strrev(str1);
str1[strlen(str1)-1]='\0';
strrev(str1);
}
if (strlen(str1)<stop)
printf("No");
else
printf("yes");
}
עבודה
נעימה,
לביא
אודי.