פורסם 2011 במאי 2714 שנים אני אמור לקרוא סטרינג עם סימני שאלה ולהציג רק את הסטרינג ויש לי בעיית Index was outside the bounds of the array.using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace TextWith{ class Program { static void Main(string[] args) { //this program got text with '?' and print the text without the '?' //read line of text string line = Console.ReadLine(); string[] words = new string[100]; string word = ""; for (int i = 0; i < line.Length; i++) { //we have regolar character without '?' if (line[i] != '?') { word += line[i]; } } for (int i = 0; i < line.Length; i++) { Console.Write(word[i]); } Console.ReadLine(); } }}
פורסם 2011 במאי 2714 שנים using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace TextWith{ class Program { static void Main(string[] args) { //this program got text with '?' and print the text without the '?' //read line of text String line = Console.ReadLine(); String word = ""; for (int i = 0; i < line.Length; i++) //we have regolar Character without '?' if (line[i] != '?') word += line[i]; Console.Write(word); Console.ReadLine(); } }}
פורסם 2011 במאי 2714 שנים מחבר תודה, הייתי שמח אם היית מסביר לי קצת על ההגיון מאחורי הנושא של הסטרינגים
פורסם 2011 במאי 2714 שנים השגיאה נוצרה בגלל קטע הקוד הבא : for (int i = 0; i < line.Length; i++)הייתי יכול לשנות אותו גם ל word.Length כדי להימנע מהחריגה שקיבלת.
פורסם 2011 במאי 2714 שנים מחבר למה קיבלתי חריגה ?למה אני לא חייב להשתמש במערך בתרגיל הזה ? (כמו בדוגמא שלך)
פורסם 2011 במאי 2714 שנים משמעות השגיאה שקיבלת היא שאתה מנסה לגשת למקום במערך word שלא נמצא בתחום של המערך הזה.בלולאה האחרונה שאתה מבצע אתה רץ על הקלט שקיבלת מהמשתמש (line).מכיוון ש Line מכיל יותר תווים מ word ה i שלך חורג מהגודל המקסימלי של word.אתה צריך לרוץ מ 0 עד word.length וכך אתה בטוח לא תחרוג מהמערך.string זה למעשה מערך של char, זה הכל.
פורסם 2011 במאי 2714 שנים כי line הוא מערך גדול יותר שמכיל גם את תווי הסימן שאלה שהשמטת במערך word (שלכן הוא קצר יותר). תהיה חריגה ברגע ש i ישמש כאינדקס מעבר לגבולות המערך word. הגדרת את הלולאה לרוץ מס' פעמים כגודל המערך line כשבפועל היית צריך להריץ אותו כגודל המערך word.
פורסם 2011 במאי 2714 שנים בכל מקרה, מחרוזות אין צורך להדפיס תו-תו. הפונקציה Console.Write יודעת לטפל בהן יפה מאוד.
פורסם 2011 במאי 2714 שנים מחבר אפשר בבקשה הסבר מה הפונקציה הזו עושה ואיך אני רושם אותה ?בוא נניח שיש לי תרגיל שבוא אני בקלט מכניס שני סטרינגים:הראשון זו מילה ראשונה למשל MOSHE והשנייה זה סטרינג SHFMMOSHEGFTYעכשיו מה שאני צריך לבדוק זה אם המילה הראשונה מופיעה בסטרינג.אני מבין שאני צריך לבדוק אות אות ולהשוות את המילה MOSHE לסטרינג הארוך ולראות אם היא מופיעה אבל יש פה בעיה קטנה, אם למשל אני משווה אות אות אז אחרי האות M הראשונה אני מקבל עוד M ואז פוסל את הסטרינג למרות שהמילה בסופו של דבר כן מופיעה במלואה, איך אני יכול לבדוק שהסטרינג כן מכיל את המילה הראשונה ?אולי אפשר להכניס את המילה MOSHE למערך ואז מהסטרינג SHFMMOSHEGFTY ליצור מערך\סטרינג מלכתכילה בגודל של המילה MOSHE ואז להשוות ?
פורסם 2011 במאי 2714 שנים אפשר בבקשה הסבר מה הפונקציה הזו עושה ואיך אני רושם אותה ?איזה פונקיצה ?! על מה אתה מדבר? איבדת אותי :s05: STRING זה לא פונקציה וכבר הסבירו לך. תמקד את השאלה שלך, או שתפתח ספר ותתחיל לקרוא. בוא נניח שיש לי תרגיל שבוא אני בקלט מכניס שני סטרינגים:הראשון זו מילה ראשונה למשל MOSHE והשנייה זה סטרינג SHFMMOSHEGFTYעכשיו מה שאני צריך לבדוק זה אם המילה הראשונה מופיעה בסטרינג.אני מבין שאני צריך לבדוק אות אות ולהשוות את המילה MOSHE לסטרינג הארוך ולראות אם היא מופיעה אבל יש פה בעיה קטנה, אם למשל אני משווה אות אות אז אחרי האות M הראשונה אני מקבל עוד M ואז פוסל את הסטרינג למרות שהמילה בסופו של דבר כן מופיעה במלואה, איך אני יכול לבדוק שהסטרינג כן מכיל את המילה הראשונה ?אולי אפשר להכניס את המילה MOSHE למערך ואז מהסטרינג SHFMMOSHEGFTY ליצור מערך\סטרינג מלכתכילה בגודל של המילה MOSHE ואז להשוות ?אתה משתמש בשיטה:str1.IndexOf(str2)זה יתן לך את האינדקס של תחילת התת מחרוזת str2 במחרוזת str1. במידה וזה לא קיים השיטה תחזיר 1-.
פורסם 2011 במאי 2814 שנים אין כמו ללמוד מקוד (יכולת לנסות זאת בעצמך).using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace T200{ class Program { static void Main(string[] args) { string str1 = "string and substrings how they work and how to use IndexOf Metod"; string str2 = "and"; Console.WriteLine(str1.IndexOf(str2)); str2 = "sub"; Console.WriteLine(str1.IndexOf(str2)); str2 = "In"; if (str1.IndexOf(str2) != -1) Console.WriteLine(str1.IndexOf(str2)); str2 = "string not found"; Console.WriteLine(str1.IndexOf(str2)); if (str1.IndexOf(str2) != -1) Console.WriteLine(str1.IndexOf(str2)); else Console.WriteLine("string in str1 dosn't contain substring in str2: \"{0}\"" , str2); Console.ReadLine(); } }}
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.