Mam string zawierający kilka wyrazów. Jak zmienić pierwsze litery każdego wyrazu na wielkie?
0
0
Metodą ToUpper();
0
Ale jak to zrobić, żeby zmieniały się tylko pierwsze litery? ;p
0
Szukaj pierwszej litery wyrazu ;p
Podpowiedz: między wyrazami jest biały znak.
0
Ale jak w klasie String odwołać się do konkretnej litery?
0
string s = "ala ma kota";
s[0] = 'A';
0
Property or indexer `string.this[int]' cannot be assigned to (it is read-only)
Racja.
string s = "ala ma kota";
s = s[0].ToUpper() + s.Substring(1);
albo podobnie.
Jest help! jest dokumentacja!
0
Error 1 'char' does not contain a definition for 'toupper'
I google były używane, spokojnie.
Edit:
OK. Wykombinowałem
string bla = "nowy jork";
string[] wyrazy = bla.Split(' ');
for(int i=0; i<wyrazy.Length; i++)
{
wyrazy[i] = wyrazy[i][0].ToString().ToUpper()[0] + wyrazy[i].Substring(1);
}
for (int i = 1; i < wyrazy.Length; i++)
{
wyrazy[0] += " " + wyrazy[i];
}
1
petrosdbz20 napisał(a):
for (int i = 1; i < wyrazy.Length; i++)
{
wyrazy[0] += " " + wyrazy[i];
}
Prościej tak:
string wynik = string.Join(" ", wyrazy);
A jak się uprzeć, to tak:
private static string ToUpper(string original)
{
string result;
unsafe
{
fixed (char* pc = original)
{
bool toUpper = true;
for (int i = 0; i < original.Length; i++)
{
if (pc[i] == ' ')
{
toUpper = true;
continue;
}
if (toUpper && pc[i] >= 'a' && pc[i] <= 'z')
{
pc[i] = (char)(pc[i] - 32);
toUpper = false;
}
}
result = new string(pc);
}
}
return result;
}
;)
0
@somekind, nie sprawdzałem, ale czy to zadziała dla polskich znaków?