Operacje na tekstach. Część 1

Typ string. Klasa String

Zakres operacji na tekstach dotyczy danych typu string. Nazwa typu string (z małej litery) to odniesienie dla klasy String (pisanej z dużej litery).

Słowo kluczowe string (pisane z małej litery) używa się do deklaracji zmiennej. Słowo kluczowe String (pisane z dużej litery) jest nazwą klasy. Słowa tego używa się do wywołania statycznych metod istniejących w tej klasie.

Podczas deklaracji zmiennej typu string nie trzeba deklarować jaki będzie maksymalny rozmiar łańcucha znaków przypisanych do takiej zmiennej. Taki łańcuch przypomina jednowymiarową tablicę znaków a klasa String zawiera szereg metod ułatwiających pracę z łańcuchami znaków.

Typ string jako tablica znaków

Przygotuj formatkę z komponentem TextBox (2 sztuki), Button, Label. TextBox ustaw do pracy w trybie Multiline= True. Dodaj belkę przewijania w pionie (ScrollBars= Vertical). Kontrolce Label przypisz tekst: Pokaz znak z pozycji: Kontrolce Button przypisz tekst Zad. 1

Operacje na tekstach. Visual Studio C#

Zad. 1

Napisz funkcję o dwóch parametrach. Pierwszy parametr typy string, drugi typu int. Funkcja ma zwracać znak z podanego łańcucha znaków (parametr pierwszy) z indeksu wskazanego przez drugi parametr. W zdarzeniu klawisza Button wywołaj tę funkcję, której wynik działania wyślesz do okna dialogowego.

znak z podanego łańcucha. Visual Studio C#

Proponowany kod funkcji, która zwraca typ char

Wskazówka:


char Znak_z_Indeksu(string tekst,int id)
{
  return tekst[id];
}

Inny sposób, funkcja zwraca typ string

Wskazówka:


string Znak_z_Indeksu2(string tekst, int id)
{
	return tekst[id].ToString();
}

Wywołanie tej funkcji w zdarzeniu Click() kontrolki Button

Wskazówka:


private void button1_Click(object sender, EventArgs e)
{
	int id = (int)Convert.ToInt32(textBox2.Text);
	MessageBox.Show("Na pozycji " + id + " jest znak: "
					+ Znak_z_Indeksu(textBox1.Text, id),
					"Komunikat",
					MessageBoxButtons.OK,
					MessageBoxIcon.Information);
}

Zad.1 w rozwiązaniu pod konsolę

Powyższe zadanie w rozwiązaniu pod konsolę przedstawia poniższa ilustracja

znak z podanego łańcucha konsola. Visual Studio C#

Postać kodu nieznacznie się różni. W rozwiązaniu uwzględniłem pętlę menu aby w jednej aplikacji zawrzeć kilka zadań.

Kod funkcji zwracającej znak z podanej pozycji

Wskazówka:


static char Znak_z_Indeksu(string tekst,int id)
{
	return tekst[id];
}

Kod funkcji realizującej zadanie 1

Wskazówka:


static void Zadanie1()
{
	Console.WriteLine("Wprowadź dowolny tekst:\n");
	string tekst = Console.ReadLine();
	Console.WriteLine("Podaj indeks znaku:\n");
	int id = int.Parse(Console.ReadLine());
	Console.WriteLine("Na pozycji " + id +
					  " jest znak " +
					  Znak_z_Indeksu(tekst, id));
}

Kod funkcji Main

Wskazówka:


static void Main(string[] args)
{
	Console.WriteLine("Witaj w CzD!");
	Console.WriteLine("Wybierz zadanie");
	Console.WriteLine("1- znak z pozycji\n"+
					  "2- tekst od tył\n"+
					  "Esc- koniec");
	ConsoleKeyInfo klawiszInfo;
	do
	{
		klawiszInfo = Console.ReadKey();
		switch (klawiszInfo.KeyChar)
		{
			case '1':Zadanie1();break;
		}
	} while (klawiszInfo.Key != ConsoleKey.Escape);
}

Zad. 2

Napisz jednoargumentową funkcję zwracająca typ łańcuchowy string. Argumentem funkcji jest typ string- ciąg znaków wprowadzonych z klawiatury. Funkcja ma wyświetlić na ekranie podany tekst w odwrotnej kolejności.

typ string. Visual Studio C#

Proponowany kod funkcji

Wskazówka:


string OdwrocTekst(string tekst)
{
	string wynik = null;
	for(int i =tekst.Length-1;i>=0; i--)
	{
		wynik+=tekst[i];
	}
	return wynik;
}

Funkcję wywołaj w zdarzeniu Click() drugiej kontrolki typu Button, tak aby w kontrolce TextBox pojawiła się nowa linia z odwróconym tekstem.

Wskazówka:


private void button2_Click(object sender, EventArgs e)
{
	textBox1.AppendText(Environment.NewLine+
						OdwrocTekst(textBox1.Text));
}

Zad. 2 Rozwiązanie pod konsolę

Poniższa ilustracja przedstawia wynik działania programu

odwróć tekst Visual Studio C#

Kod funkcji odwracającej znaki tekstu

Wskazówka:


static string OdwrocTekst(string tekst)
{
	string wynik = null;
	for (int i = tekst.Length - 1; i >= 0; i--)
	{
		wynik += tekst[i];
	}
	return wynik;
}

Funkcję wywołujemy w drugiej funkcji, odpowiedzialnej za przygotowanie informacji dla użytkownika

Wskazówka:


static void Zadanie2()
{
	Console.WriteLine("\nWprowadź dowolny tekst:\n");
	string tekst = Console.ReadLine();
	Console.WriteLine("Tekst w odwrotnej kolejności:\n");
	Console.WriteLine(OdwrocTekst(tekst)+"\n");
}

Pętla klawiszologii zmieni się na poniższą

Wskazówka:


static void Main(string[] args)
{
	Console.WriteLine("Witaj w CzD!");
	Console.WriteLine("Wybierz zadanie");
	Console.WriteLine("1- znak z pozycji\n"+
					  "2- tekst od tył\n"+
					  "Esc- koniec");
	ConsoleKeyInfo klawiszInfo;
	do
	{
		klawiszInfo = Console.ReadKey();
		switch (klawiszInfo.KeyChar)
		{
			case '1': Zadanie1();break;
			case '2': Zadanie2(); break;
		}
	} while (klawiszInfo.Key != ConsoleKey.Escape);
}

Zadania do samodzielnego wykonania

Zad. 3

Napisz funkcję, która podany łańcuch znaków w argumencie wyświetli pojedynczo w nowym wierszu. Rozwiązanie podaj jako aplikacja desktopowa i konsolowa.

łańcuch znaków Visual Studio C#

Widok na rozwiązanie konsolowe

łańcuch znaków konsola Visual Studio C#

Zad. 4

Napisz funkcję, która w podanym łańcuchu znaków jako argument zliczy krotność występowania zadanego znaku. Rozwiązanie podaj jako aplikacja desktopowa i konsolowa.

krotnośc znaku ile razy występuje znak Visual Studio C#

Widok na rozwiązanie konsolowe

krotnośc znaku ile razy występuje znak konsola Visual Studio C#
Alkomat- wirtualny test

Alkomat- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Olinowanie stałe- kalkulator średnic

Olinowanie stałe- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
przepis na gogfry

Przepis na gofry

zobacz
przepis na bitą śmietanę

Przepis na bitą śmietanę

zobacz