עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

תרגיל ב-C# - הצגת סטרינג

Featured Replies

פורסם

אני אמור לקרוא סטרינג עם סימני שאלה ולהציג רק את הסטרינג ויש לי בעיית 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();
}
}
}

פורסם


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();
}
}
}

פורסם
  • מחבר

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

פורסם

השגיאה נוצרה בגלל קטע הקוד הבא :

for (int i = 0; i < line.Length; i++)

הייתי יכול לשנות אותו גם ל word.Length כדי להימנע מהחריגה שקיבלת.

פורסם
  • מחבר

למה קיבלתי חריגה ?

למה אני לא חייב להשתמש במערך בתרגיל הזה ? (כמו בדוגמא שלך)

פורסם

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

בלולאה האחרונה שאתה מבצע אתה רץ על הקלט שקיבלת מהמשתמש (line).

מכיוון ש Line מכיל יותר תווים מ word ה i שלך חורג מהגודל המקסימלי של word.

אתה צריך לרוץ מ 0 עד word.length וכך אתה בטוח לא תחרוג מהמערך.

string זה למעשה מערך של char, זה הכל.

פורסם

כי line הוא מערך גדול יותר שמכיל גם את תווי הסימן שאלה שהשמטת במערך word (שלכן הוא קצר יותר). תהיה חריגה ברגע ש i ישמש כאינדקס מעבר לגבולות המערך word. הגדרת את הלולאה לרוץ מס' פעמים כגודל המערך line כשבפועל היית צריך להריץ אותו כגודל המערך word.

פורסם

בכל מקרה, מחרוזות אין צורך להדפיס תו-תו. הפונקציה Console.Write יודעת לטפל בהן יפה מאוד.

פורסם
  • מחבר

אפשר בבקשה הסבר מה הפונקציה הזו עושה ואיך אני רושם אותה ?

בוא נניח שיש לי תרגיל שבוא אני בקלט מכניס שני סטרינגים:

הראשון זו מילה ראשונה למשל MOSHE והשנייה זה סטרינג SHFMMOSHEGFTY

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

אני מבין שאני צריך לבדוק אות אות ולהשוות את המילה MOSHE לסטרינג הארוך ולראות אם היא מופיעה אבל יש פה בעיה קטנה, אם למשל אני משווה אות אות אז אחרי האות M הראשונה אני מקבל עוד M ואז פוסל את הסטרינג למרות שהמילה בסופו של דבר כן מופיעה במלואה, איך אני יכול לבדוק שהסטרינג כן מכיל את המילה הראשונה ?

אולי אפשר להכניס את המילה MOSHE למערך ואז מהסטרינג SHFMMOSHEGFTY ליצור מערך\סטרינג מלכתכילה בגודל של המילה MOSHE ואז להשוות ?

פורסם

אפשר בבקשה הסבר מה הפונקציה הזו עושה ואיך אני רושם אותה ?

איזה פונקיצה ?! על מה אתה מדבר? איבדת אותי :s05: STRING זה לא פונקציה וכבר הסבירו לך. תמקד את השאלה שלך, או שתפתח ספר ותתחיל לקרוא.

בוא נניח שיש לי תרגיל שבוא אני בקלט מכניס שני סטרינגים:

הראשון זו מילה ראשונה למשל MOSHE והשנייה זה סטרינג SHFMMOSHEGFTY

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

אני מבין שאני צריך לבדוק אות אות ולהשוות את המילה MOSHE לסטרינג הארוך ולראות אם היא מופיעה אבל יש פה בעיה קטנה, אם למשל אני משווה אות אות אז אחרי האות M הראשונה אני מקבל עוד M ואז פוסל את הסטרינג למרות שהמילה בסופו של דבר כן מופיעה במלואה, איך אני יכול לבדוק שהסטרינג כן מכיל את המילה הראשונה ?

אולי אפשר להכניס את המילה MOSHE למערך ואז מהסטרינג SHFMMOSHEGFTY ליצור מערך\סטרינג מלכתכילה בגודל של המילה MOSHE ואז להשוות ?

אתה משתמש בשיטה:

str1.IndexOf(str2)

זה יתן לך את האינדקס של תחילת התת מחרוזת str2 במחרוזת str1. במידה וזה לא קיים השיטה תחזיר 1-.

פורסם
  • מחבר

לא כ"כ הבנתי מה זה אומר עם התת מחרוזת STR2 במחרוזת STR1

פורסם

אין כמו ללמוד מקוד (יכולת לנסות זאת בעצמך).



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();

}
}
}

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.