ABA


"שאלה בC++ לגבי STRCHR"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15615 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15615
kutumaster 
חבר מתאריך 19.9.06
19325 הודעות
   20:38   13.12.09   
אל הפורום  
  שאלה בC++ לגבי STRCHR  
 
   לא הבנתי לגמרי מה אפשר לעשות עם הפונקציה הזאת?
היא בודקת לי אם CHAR כל שהוא נמצא במחרוזת
ומה היא מחזירה לי? את המיקום שלו במחרוזת?
אם כן, איך אני יכול לראות את זה?
תודה

בברכה,


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  היא מחפשת תו במחרוזת ronen333  13.12.09 21:01 1
     תוכל לתת לי דוגמא? kutumaster  13.12.09 22:34 2
         נגיד שיש לך VeNom  13.12.09 22:55 3
             אוקי, זה חידד לי כמה דברים, אבל עדיין עוד שאלה kutumaster  14.12.09 01:40 4
                 תבין.. VeNom  14.12.09 01:57 5
                     כמה שאלות kutumaster  14.12.09 02:06 6
                         זה נכתב ב c VeNom  14.12.09 11:34 7

       
ronen333 
חבר מתאריך 20.2.03
6069 הודעות
   21:01   13.12.09   
אל הפורום  
  1. היא מחפשת תו במחרוזת  
בתגובה להודעה מספר 0
 
   ומחזירה את כתובתו של התו במחרוזת המקור, במידה והתו לא נמצא מחזירה NULL.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kutumaster 
חבר מתאריך 19.9.06
19325 הודעות
   22:34   13.12.09   
אל הפורום  
  2. תוכל לתת לי דוגמא?  
בתגובה להודעה מספר 1
 
   איך היא מחזירה ולאן? אני לא מצליח להבין

בברכה,


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   22:55   13.12.09   
אל הפורום  
  3. נגיד שיש לך  
בתגובה להודעה מספר 2
 
   ערכתי לאחרונה בתאריך 13.12.09 בשעה 23:00 בברכה, VeNom
 

int main ()
{
char str = "sample string";
char * ptr;
ptr=strchr(str,'s');
if (ptr!=NULL)
{
printf ("found at %d\n",ptr-str);
}
return 0;
}

בהינתן המחרוזת "סמפל סטרינג" ופוינטר
ptr
אני מפעיל את ה strchr
על האות
s
במקרה והאות מופיעה במחרוזת הוא יחזיר לי את המקום שלה בזכרון..שזה איפשהו במחשב..
מה אתה יכול לעשות עם זה?
מכיוון שמערך הוא שטח זכרון רציף אתה יכול לחסר את כתובת ההתחלה של המערך ולהגיע למקום המדוייק של האות.
בהרצה הזאת ה
s
נמצאת בכתובת ההתחלה של המערך..
ולכן אם תפחית את כתובת ההתחלה של המערך מהמקום שהתו נמצא תקבל 0..
והמיקום שלו באמת נמצא ב
str
במקום ה 0


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kutumaster 
חבר מתאריך 19.9.06
19325 הודעות
   01:40   14.12.09   
אל הפורום  
  4. אוקי, זה חידד לי כמה דברים, אבל עדיין עוד שאלה  
בתגובה להודעה מספר 3
 
   בהתחלה חשבתי שזה יחזיר לי את המקום של האות ביחס למחרוזת
לדוגמא אם יש את המילה אבא
ואני מחפש ב
אז הוא יגיד לי שזה נמצא במקום השני, אז הבנתי שטעיתי, והוא מחזיר את המיקום בזיכרון. עכשיו, אם לדוגמא אני רוצה שאם הוא מוצא את האות ב במערך, שיחליף אותה עם משהו אחר, יש דבר כזה?

בברכה,


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   01:57   14.12.09   
אל הפורום  
  5. תבין..  
בתגובה להודעה מספר 4
 
   למילה אבא יש כתובת בזכרון..
בוא קח דוגמא אחרת..
המילה
example
מילה בת 7 אותיות..כל אות = char..
אם המילה מופיעה במחרוזת אז כל התווים רצופים.
נניח שהמחרוזת יושבת בכתובת 1000 בזכרון..
מה זה אומר?
שהאות הראשונה יושבת בכתובת 1000..השניה ב 1001..וכדומה.
נניח שהיית עושה strchr על המחרוזת example
עם האות x
הוא היה מחזיר לך מצביע שהערך של התא שלו הוא x והכתוב שלו היא במקרה הזה 1001.
מה אתה יכול לעשות עם ה 1001 הזה?
אז כמה דברים..
אתה יכול לגשת לתוכן שלו ולהחליף את האות במשהו אחר.
אתה יכול לחשב כמה רחוק הוא מתחילת המערך ולדעת איזה מספר אות.
אין לי מושג לגבי הידע שלך..אם יש לך בעיה או לא הבנת אז אל תתבייש לשאול.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kutumaster 
חבר מתאריך 19.9.06
19325 הודעות
   02:06   14.12.09   
אל הפורום  
  6. כמה שאלות  
בתגובה להודעה מספר 5
 
  

int main (){
char str = "sample string";
char * ptr;
ptr=strchr(str,'s');
if (ptr!=NULL)
{
printf ("found at %d\n",ptr-str);
}
return 0;
}

אחלה אז יש כמה דברים שאני לא מבין בקוד
א, אני מבין שזה נכתב ב C ולא סי פלוס פלוס
אבל מה זה הכוכבית הזאת פה?
char * ptr;
דבר שני, אם אמרנו שהפונקציה מחזירה מיקום, אז אני לא מבין את השורה הזאת, והיא גם לא עוברת אצלי קומפילצה, איך אתה מכניס את הערך של המיקום לCHAR?
ptr=strchr(str,'s');

בברכה,


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   11:34   14.12.09   
אל הפורום  
  7. זה נכתב ב c  
בתגובה להודעה מספר 6
 
   הכוכבית=טיפוס מסוג מצביע..הוא מחזיק כתובת בעקרון..יכול להיות שעדיין לא למדת את זה..
ברמה של קורס מבוא c ו c++ מאוד דומים..כי לא מתעסקים בתכנות מכוון עצמים..וכלן זה לא אמור להדאיג אותך..
לך לויקיספר יש שם אחלה ערך על שפת c ומצביעים ותתחיל משם..
אם תצטרך אתה יכול לשלוח ה"פ..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net