Zmiana pierwszych liter w wyrazach

0

Mam string zawierający kilka wyrazów. Jak zmienić pierwsze litery każdego wyrazu na wielkie?

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?

1 użytkowników online, w tym zalogowanych: 0, gości: 1