עבור לתוכן

שאלה בקשר לתוכנית שכתבתי בC

Featured Replies

פורסם

אני צריך לכתוב תוכנית ב C שקולטת מחרוזת מסויימת והתוכנית צריכה להחסיר 1 מהתו הראשון של המילה הראשונה, 2 מהתו השני וכו'...

עד שזה מגיע לרווח, ואז אותו דבר עבור המילה השנייה וכך הלאה...

ובסוף צריך להדפיס את המחרוזת החדשה שהתקבלה.

אני מבין שצריך לעבוד עם הקוד ASCII של התווים אבל אני לא ממש יודע איך לעבוד עם הפקודות שקשורות לזה.

זו הלולאה שאני כתבתי, הקומפילציה עוברת בסדר אבל בהרצה הוא נתקע על ההתחלה (אני יכול לחזור לתוכנית רק בעזרת CTRL BREAK)

מקווה שתוכלו לעזור לי: ???

char stg[50]="bla rababa magula"

while (i<50)

{

k=1;

while (stg!=' ')

{

temp=(int)(stg)-k;

stg=(char)(temp);

k++;

i++;

}

}

פורסם

char stg[50]="bla rababa magula"

for(i=0,k=1;stg != '\0';i++,k++)

{

if(stg != ' ') { k=0; continue; }

stg=stg-k;

}

בעיקרון הטעות העיקרית שלך היא שאם הגעת לרווח אתה לא מעלה את ה-i ונתקע לנצח.

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

אבל ככה זה נראה הרבה יותר יפה

פורסם

לא עקרוני, אבל יותר יפה לכתוב NULL במקום '0\'

כמה שיותר מילים במקום אותיות == יותר קריא == מוצאים טעויות יותר מהר

ארכיון

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

דיונים חדשים