PDA

View Full Version : جدا کردن حرف وسط رشته



black_shadow
یک شنبه 20 دی 1394, 15:31 عصر
سلام
یه سوال دارم

چطوری میتونم 2تا حرف وسط یک رشته رو پیدا کنم
نمیدونم رشته چند حرفیه اکان داره 30 حرف باشه امکان داره 6 حرف

مثلا من میخوام یه کلمه ای که کاربر وارد کرده و نمیدونم چند کاراکتر داره رو از وسطش 2تا کاراکتر جدا کنم
مثل برنامه نویس که 11 تاس حالا از بین این 11تا چطور تشخیص بدم که کدوم حروفا وسط قرار دارند

black_shadow
یک شنبه 20 دی 1394, 15:51 عصر
این کد خودمه نمیدونم چرا مسج باکس چیزیو نشون نمیده


private void button1_Click(object sender, EventArgs e)
{
string a = textBox1.Text;
int count = a.Length;
int baqimande = count % 2;
int result = count / 2;
if (count == 0)
{
MessageBox.Show("" + a.Substring(result, 2).ToString());
}
// MessageBox.Show("" + count);
}

Mahmoud Zaad
یک شنبه 20 دی 1394, 16:29 عصر
سلام
اگه تعداد کاراکترها فرد باشه دو کاراکتر وسط رو نمیشه جدا کرد، یه مقدار این طرفتر یا اون طرف تر رو میشه پیدا کرد!


string _a = textBox2.Text;

//محاسبه طول رشته
int _length = _a.Length;

//اگه یک کاارکتر داشته باشیم خطا خواهیم داشت بنابراین شرط زیر را می نویسیم
//حداقل باید دو کاراکتر وجود داشته باشد

if (_length < 2)
{
MessageBox.Show("تعداد کاراکترها کمه");
return;
}

//طول رشته را منهای 2 می کنیم. 2 همان دو کاراکتر وسط است
int _pureLength = _length - 2;

//بعد عدد به دست آمده را تقسیم بر دو میکنیم که اندیس دو کاراکتر وسط از اینجا محاسبه می شود
int _division = _pureLength / 2;

//این همان اندیس دو کاراکتر وسط است
int _index = 0;

//بخش پذیری را بررسی می کنیم
if (_pureLength % 2 == 0)//اگر بخش پذیر باشد یعنی تعداد کاراکترها زوج باشد، اندیس همان حاصل تقسیم است
{
_index = _division;
}
else //اگر بخش پذیر نباشد یعنی تعداد کاراکترها فرد باشد، اندیس را بعلاوه یک می کنیم، وسط به چپ میشه
{
_index = _division + 1;
}

//نمایش
MessageBox.Show(_a.Substring(_index, 2));

black_shadow
یک شنبه 20 دی 1394, 16:44 عصر
آقا دمت گرم دادش میتونم بپورسم اینجور الگوریتم هارو چطوری میشه یاد گرفت منظورم الگوریتمی فک کردن و...
من انقد فک کردم هکون کد رو نوشتم

Mahmoud Zaad
یک شنبه 20 دی 1394, 17:33 عصر
مهمترین نکته اش اینه که شما اول باید روی کاغذ مساله رو حل کنی با چندتا مثال در واقع اول باید ببینیم ذهن انسان چه جوری مساله رو حل می کنه. تا وقتی مطمئن نشدی که روی کاغذ مساله حل شده نباید کد نویسی کنی. بعد باید مساله رو به اجزای کوچکتر تقسیم کنی. بعد باید استثناها رو بررسی کنی. هر جایی که با عدد کار داری باید اعداد زوج، فرد، صفر رو بررسی کنی و ... کلاً باید مساله زیاد حل کنی تا ذهنت ذهن الگوریتمی بشه. پیشنهاد می کنم مساله های کتاب های درسی رو به روشی که گفتم حل کن. اگه علاقمند باشی به برنامه نویسی سریع راه می افتی.

black_shadow
سه شنبه 22 دی 1394, 11:29 صبح
مهمترین نکته اش اینه که شما اول باید روی کاغذ مساله رو حل کنی با چندتا مثال در واقع اول باید ببینیم ذهن انسان چه جوری مساله رو حل می کنه. تا وقتی مطمئن نشدی که روی کاغذ مساله حل شده نباید کد نویسی کنی. بعد باید مساله رو به اجزای کوچکتر تقسیم کنی. بعد باید استثناها رو بررسی کنی. هر جایی که با عدد کار داری باید اعداد زوج، فرد، صفر رو بررسی کنی و ... کلاً باید مساله زیاد حل کنی تا ذهنت ذهن الگوریتمی بشه. پیشنهاد می کنم مساله های کتاب های درسی رو به روشی که گفتم حل کن. اگه علاقمند باشی به برنامه نویسی سریع راه می افتی.
ممنون ازت
میشه یه کتاب معرفی کنی واسه همین مسئله ها

Mahmoud Zaad
سه شنبه 22 دی 1394, 12:26 عصر
سلام
اینا یه سری سوال. (فقط جواباش با سی هست)