לא מבין מדוע התכנית מתרסקת לי - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

לא מבין מדוע התכנית מתרסקת לי


TheSlider

Recommended Posts

היי חברים,

אני צריך לכתוב תכנית שעושה את הדבר הבא:

כתבו פונקציה המקבלת מחרוזת שמייצגת מספר שלם אי-שלילי ומספר נוסף location המייצג מיקום במספר (ניתן להניח שהקלט תקין). הפונקציה תחזיר את ערך הסיפרה במיקום המבוקש. כלומר, עבור location==0 תוחזר סיפרת האחדות, עבור location==1 תוחזר סיפרת העשרות, וכן הלאה.

לדוגמא, קריאה לפונקציה עם המחרוזת "123" והמיקום 0 תחזיר את הערך 3.

זאת התכנית שכתבתי:

#include <stdio.h>
#include <string.h>

int numloc(char *s, int location)
{
return *(s+strlen(s)-location-1)-'0';
}



int main()
{
int num;
char s[4]="123";

printf("Please enter a location\n");
scanf("%d",&num);
printf (findDigit(&s,num));
return 0;
}

הבעיה היא שהתכנית מתרסקת בשלב הפונקציה.

קישור לתוכן
שתף באתרים אחרים

אוקי ובנוגע לאורך מחורזת,

הפקודה strlen מחזירה לי את אורך כל המחרוזת כולל \0?

כלומר מחרוזת שהגדרתי אותה באורך 5 אז האם הפקודות הבאות חוקיות:?

len=strlen(s);

printf("%s",s[len]);

או שאני צריך לכתוב

printf("%s",s[len-1]);

וזה במידה ואני רוצה להדפיס את התו שלפני האפס

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...