Łańcuch w postaci kolejnych wyrazów od nowych linii.

0

Wczytaj z klawiatury łańcuch, który może się składać z dowolnych liter, cyfr i spacji.
Napisz program, który wyświetli ten łańcuch w postaci kolejnych wyrazów od nowych linii.
Możesz skorzystać z metod klasy String - np. Insert, łańcuch "\n" skutkuje przejciem do nowej linii
Przykład wprowadzonego tekstu: "Ala ma kota"
Efekt działania programu: Ala
...................................................................................ma
...................................................................................kota
Bez kropek, które mają symbolizować wcięcie
Czy ja to dobrze zrobiłam:

string[][] zespoly = {
                                    new string[] { "Ala", "ma"},
                                    new string[] { "", "kota"} };
            for (int i = 0; i < zespoly.Length; i++)
            {
                for (int j = 0; j < zespoly[i].Length; j++)
                {
                    Console.Write("{0,-10}", zespoly[i][j]);                 
                }
                Console.WriteLine();
            }
            Console.ReadKey();
3

Nie. Nigdzie nie wczytujesz z klawiatury. Poza tym używasz tablic dwuwymiarowych, po co?

Jeżeli chodzi o to aby program wyświetlił wyraz po wyrazie (czyli gdyby w miejsca spacji wstawiał nową linię) to zrobiłbym coś takiego:

string line = Console.ReadLine();
string[] words = line.Split(' ');

foreach(var word in words)
{
    Console.WriteLine(word);
}
2

Warto do splita dodać StringSplitOptions.RemoveEmptyEntries w wiadomym celu.

0

a jest jakaś inna możliwość, ponieważ jeszcze nie mieliśmy takiego pojęcia jak split

3

Możesz zamienić spacje na nowe linie:

string line = Console.ReadLine();
line = line.Replace(' ', '\n');
Console.WriteLine(line);
0

a gdybym chciała zrobić to insertem czyli wstawić w miejsce spacji \n, da się tak?

2

@eucalyptus: insert – jak sama nazwa wskazuje – służy do wstawiania, nie do zamiany. To o co pytasz zrealizował @atmal dwa postyt wyżej, używając odpowiedniego sposobu.

2
eucalyptus napisał(a):

a jest jakaś inna możliwość, ponieważ jeszcze nie mieliśmy takiego pojęcia jak split

Nikt na studiach, czy w szkole nie nauczy Cię wszystkich metod wszystkich podstawowych klas. Jest to nierealne. Musisz poznać je we własnym zakresie. Po to masz dokumentację i podpowiedzi w IntelliSense.

Split to podstawowa (częsta) operacja na stringu. Rozdziela stringa na tablicę wg podanego delimitera. Np:

string str = "Ala ma kota";
string[] tab = str.Split(" ");

Tutaj delimiterem jest spacja. Cały string zostanie podzielony na fragmenty przedzielone spacją. Całość trafi do tablicy:
tab[0] = "Ala"
tab[1] = "ma"
tab[2] = "kota"

Pamiętaj, że jako delimitera możesz użyć dowolnego znaku (a nawet całego stringa)

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