עבור לתוכן
  • צור חשבון
  • מי אנחנו?

    שלום אורח/ת!

     
    שים לב - על מנת להשתתף בקהילה שלנו, להגיב ולפתוח דיונים חדשים, עליך להצטרף כחבר רשום.

    החברים שלנו נהנים מיתרונות רבים, כולל היכולת להשתתף בדיונים, להנות מהגרלות ומבצעים לחברי האתר, ולקבל מידי שבוע את התכנים הבולטים שלנו ישירות במייל.

    לא אוהבים שמציקים לכם במייל? ניתן להירשם לאתר אך לוותר על הרישום לעידכוני המייל השבועיים.

Dolmiti

שפת C - העתקת מחרוזת strcpy

Recommended Posts

למה אני מקבל שגיאה בקוד המצורף

תודה לעונים

ציטוט

 


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


char *InsertAChar(char *s, char c)
{
    char *foo;
     foo=(char*)calloc(strlen(s)+1, sizeof(char));
    if ( !foo) return NULL;
      strcpy(foo, s);
    foo[0]=c;
    strcpy(s, foo); /* ERROR!! */
    free(foo);
    return s;    
}

int main() {
    
char * str="avironf";
char * p=str+3;
printf("%s\n",InsertAChar(p, '$')); /* avi$onf*/
    return 0;
}

 

 

נערך על-ידי Dolmiti

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

היה עוזר אם תאמר איזו שגיאה אתה מקבל.

 

בכל מקרה, כשאתה מגדיר מחרוזת בצורה הזו:

char* str = "hello";

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

בשביל להגדיר את המחרוזת כך שתוכל לכתוב אליה, צריך להגדיר ככה:

char str[] = "hello";

זה אומר לקומפיילר "צור מערך בשם str ותאתחל את התוכן שלו למחרוזת "hello", וככה תוכל גם לכתוב אליו.

 

חוץ מזה, לא הבנתי כל כך מה הפואנטה של הפונקציה InsertAtChar, למה את מסתבך עם ליצור מחרוזת חדשה, להעתיק אליה ואז להעתיק בחזרה, במקום פשוט לעשות פשוט s[0]=c.

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים

הצטרפ/י לדיון

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

אורח
הוסף תגובה

×   התוכן שהודבק הוא עם עיצוב.   הסר עיצוב

  Only 75 emoji are allowed.

×   הקישור שלך הוטמע אוטומטית.   הצג כקישור רגיל

×   התוכן הקודם שלך שוחזר אוטומטית.   נקה הכל

×   You cannot paste images directly. Upload or insert images from URL.


×
  • צור חדש...
Back to top button
Close