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

Łańcuch w postaci kolejnych wyrazów od nowych linii.
EU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 58
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:

Kopiuj
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();
atmal
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 913
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:

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

foreach(var word in words)
{
    Console.WriteLine(word);
}
grzesiek51114
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2442
2

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

EU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 58
0

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

atmal
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 913
3

Możesz zamienić spacje na nowe linie:

Kopiuj
string line = Console.ReadLine();
line = line.Replace(' ', '\n');
Console.WriteLine(line);
EU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 58
0

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

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
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.

JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
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:

Kopiuj
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)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.