PDA

View Full Version : سوال: بزرگ کردن حروف بعد از فضای خالی در رشته؟



complexcoding
پنج شنبه 17 آذر 1390, 23:22 عصر
دوستان سلام
چگونه وقتی یک متن رشته رو درون ریچ تکس باکس انتخاب کنیم وقتی قسمتی از متن رو انتخاب کنیم با فشردن یک دکمه حروف اول هر کلمه بعد از فضای خالی به حروف بزرگ تبدیل بشه مثل :
salam hale shoma khobe
به این تبدیل بشه :
Salam Hale Shoma Khobe

saam_2371369
جمعه 18 آذر 1390, 01:41 صبح
سلام دوست عزیز شما باید کل رشتتونو داخل ارایه قرار بدید بعد با یه حلقه یکی یکی کارتر ها رو بخونی هر زمان به Spase رسیدی کارکتر بعدی رو -32 (البته این عدد 32 زیاد خاطرم نمونده) بکنید

ولی میدونم که با +عدد کردن حروف کوچیک میشن و با برعکسش حروف به بزرگ تبدیل میشن

امیروارم موفق باشی

complexcoding
جمعه 18 آذر 1390, 01:50 صبح
با سلام خدمت شما خیلی ممنونم از راهنماییت ولی نمونه کد نداری؟

ali_habibi1384
جمعه 18 آذر 1390, 14:00 عصر
char[] s = new char[100];
for (int i = 0; i < textBox1.Text.Length-1;i++, s[i]=textBox1.Text[i])
if (textBox1.Text [i] == ' ') s[i+1] =Convert.ToChar( textBox1.Text[++i].ToString().ToUpper());

مقدار مورد نظر در آرايه s قرار دارد

complexcoding
جمعه 18 آذر 1390, 19:50 عصر
خیلی ممنون ولی اینجا میزان آرایه 100 تا ایندکس داره اگر متن مورد نظر از این مقدار بیشتر بود باس چیکار کرد؟ یعنی قابل پیش بینی نیست که متن مورد نظر چندتا کاراکتر داره؟ مچکر

reza_mostafavi63
جمعه 18 آذر 1390, 20:55 عصر
TextBox temp = new TextBox();
if (textBox1.Text != "")
textBox1.Text = textBox1.Text[0].ToString().ToUpper()
+ textBox1.Text.Substring(1, textBox1.Text.Length - 1);
for (int i = 0; i < textBox1.Text.Length; i++)
{
if ((textBox1.Text[i] == ' ') && (textBox1.Text.Length-1 > i))
{
temp.Text = textBox1.Text.Substring(0, i+1 )+
textBox1.Text[i + 1].ToString().ToUpper();
if (textBox1.Text.Length > i + 1)
temp.Text += textBox1.Text.Substring(i + 2, textBox1.Text.Length - (i + 2));
textBox1.Text = temp.Text;
}
}

linux
جمعه 18 آذر 1390, 23:02 عصر
چرا لقمه را دور سرتان می چرخانید؟!
string ToUpper(string s)
{
if (string.IsNullOrEmpty(s) || string.IsNullOrWhiteSpace(s))
return string.Empty;
string o = string.Empty;
o += char.ToUpper(s[0]);
for (int i = 1; i < s.Length; i++)
{
if (char.IsWhiteSpace(s[i - 1]))
o += char.ToUpper(s[i]);
else
o += s[i];
}
return o;
}

Hajivandian
شنبه 19 آذر 1390, 00:35 صبح
چرا لقمه را دور سرتان می چرخانید؟!

private string ToTitle(string str)
{
StringBuilder buffer = new StringBuilder();
for (int i = 0; i < str.Length - 1; i++)
{
if (str[i] == ' ')
{
buffer.Append(" ");
buffer.Append(char.ToUpper(str[i + 1]));
i++;
}
else
{
buffer.Append(str[i]);
}
}

return buffer.ToString();
}

ali_habibi1384
شنبه 19 آذر 1390, 00:47 صبح
خیلی ممنون ولی اینجا میزان آرایه 100 تا ایندکس داره اگر متن مورد نظر از این مقدار بیشتر بود باس چیکار کرد؟ یعنی قابل پیش بینی نیست که متن مورد نظر چندتا کاراکتر داره؟ مچکر

طول آرايه رو طول تكست باكس بگير براي ينكار كافيه خط اول رو تغيير بدي:


char[] s = new char[textBox1.Text.Length];