עבור לתוכן

שימוש בפוינטרים במקום באינדקסים

Featured Replies

פורסם

שלום! נתבקשנו לבצע את המטלה הבאה:

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

דוגמת הרצה:

Enter string: 123Students
You’ve entered: 123Students
New string: Students
[U]הנחיות:[/U]
אין להשתמש בפונקציות ספריה מ-string.h לפיתרון הבעיה.
אסור לשנות את המחרוזת !
עליכם להשתמש במצביעים ולא באינדקסים!

אז המשימה אומנם לא הייתה קשה מידי והתוכנית רצה בסדר גמור, מה שכן אני לא בטוח אם ביצעתי נכון את המטלה, שימוש בפוינטרים במקום באינדקסים ואשמח אם תציצו על הקוד ותומרו אם צריך לשנות והיכן על מנת שזה יהיה עם פוינטרים במקום עם אינדקסים.


#include<string.h>
#define N 20


void newstring(char str[],int len);


void main()
{
int len,i = 0;
char str[N];
printf("Type a string: ");
gets(str);
while(str[i] != '\0')
{
i++;
}
printf("You've entered : %s \n",str);
newstring(str,i);

}


void newstring(char str[],int len)
{
int i;
printf("the new string : ");
for(i = 0; i < len; i++)
{

if((*(str+i) == ' ') ||(*(str+i) >= '0' && *(str+i) <= '9'))
{
continue;
}

printf("%c" ,*(str+i));
}

printf("\n");


}
#include<stdio.h>

נערך על-ידי xXx Lid

פורסם

מצביע זה המילה העברית לפוינטר... מומלץ שתערוך את ההודעה שיהיה ברור יותר.

פורסם
  • מחבר

תודה, אני יודע מזה פוינטר בעברית כמובן, חל איזה בלבול קטן :kopfpatsch:. ההודעה תוקנה.

פורסם

בדרך כלל פונקציה שמקבלת מחרוזת לא צריכה לקבל את האורך שלה - היא צריכה להסיק את האורך בעצמה.

חוץ מזה, אמנם טכנית לא השתמשת באינדקסים, אבל נראה לי שהכוונה של התרגיל הייתה לא להשתמש גם במשתנה אינדקס מטיפוס int.

פורסם
  • מחבר

חוץ מזה, אמנם טכנית לא השתמשת באינדקסים, אבל נראה לי שהכוונה של התרגיל הייתה לא להשתמש גם במשתנה אינדקס מטיפוס int.

זאת בדיוק השאלה שלי, אז איך אני ממשיך מפה הלאה? ומשנה את זה, בדיוק בקטע הזה הסתבכתי...

פורסם

תתחיל מלהיפטר מהחישוב של האורך. אתה לא צריך אותו.

פורסם

רמז: מצביע ניתן להזיז (וזאת בניגוד למערך ממש).

פורסם
  • מחבר

אני יודע שניתן להזיז ובלולאה של הפונקציה רשמתי, str++; במקום str+i אבל זה גרם לתוכנית לעבוד בצורה לא תקינה והיא הייתה מעתיקה את המחרוזת רק עד הרווח במקום לדלג עליו ולהמשיך הלאה.

פורסם
  • מחבר
אז תמצא מה הבאג שלך ותתקן אותו.

מה הייתי עושה ללא העצות שלך :kopfpatsch:.

אתה חושב שלא ניסיתי? אם הייתי מוצא או מצליח להבין למה זה קורה לא הייתי שואל פה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים