Jak policzyc ile jest slow w lancuchu??

0

Witam
Mam mały problem. Program działa bez petli ktora jest pogrubiona czcionka ponizej - w petli tej chciałem policzyc ile wyrazów zawiera lancuch (nowy wyraz traktowany jest jesli jest spacja, +, -, # i inne takie znaki). Problem polega na tym ze mam tablice stringow (wiem jaka jest dlugosc kazdego elementu) ale nie umiem policzyc ile wyrazow zawiera kazdy element np Tab[0] = "To jest przykładowy tekst" dlugosc zwraca mi 24 ok tylko nie umiem wyliczyc ze ten element tablicy ma 4 wyrazy. Czy ma ktos jakis pomysł jak zmodyfikowac ta petle w ponizszym kodzie aby liczyło ile wyrazow ma kazdy element tablicy??

Prosze o pomoc jesli to mozliwe. Pozdrawiam:)

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace Lancuchy
{
class MojaKlasa
{
FileStream funkcjaZapis, funkcjaOdczyt;

    void Odczyt()
    {
        string odczyt;
        funkcjaOdczyt = new FileStream("D://p1.txt", FileMode.Open);
        StreamReader sr = new StreamReader(funkcjaOdczyt);

        Console.WriteLine("Odczytujemy dane z pliku.\n");
        int a, licznik, suma, zmienna, b, c;
        a = 0;
        suma = 0;
        licznik = 0;
        zmienna = 0;
        string[] Tablica = new string[15];
        while ((odczyt = sr.ReadLine()) != null)
        {
            Console.WriteLine("Tab[" +a+ "] = " + odczyt);
            Tablica[a] = odczyt;
            a++;
            licznik++;
        }
        Console.WriteLine("\nKoniec odczytu z pliku tekstowego.\n");
        a = 0;
        b = 0;
        c = 0;
        while (licznik != 0)
        {
            zmienna = Tablica[a].Length;
            suma += zmienna;

do
{
if (Tablica[a][b] == ' ' || Tablica[a][b] == '+' || Tablica[a][b] == '-' || Tablica[a][b] == '#' || Tablica[a][b] == '$' || Tablica[a][b] == '%' || Tablica[a][b] == '^' || Tablica[a][b] == '&' || Tablica[a][b] == '*' || Tablica[a][b] == '\n' )
{
c++;
} b++;

            } while (b <= zmienna);</b>

            
            Console.WriteLine("Suma dlugosci znakow Tab[" + a + "] = " + zmienna);
            a++;
            b++;
            licznik--;
        }
        Console.WriteLine("\nRazem " + suma + " znakow na wyrazow " + c + " \n");
        
    }

    void Zapis()
    {
        int licznik1;
        licznik1 = 6;
        funkcjaZapis = new FileStream("D://p2.txt", FileMode.Create);
        StreamWriter sw = new StreamWriter(funkcjaZapis);



        Console.WriteLine("Dane teraz zostaja zapisywane w pliku ciagiin.txt jako postac kontrolna!!!");
        while (licznik1 != 0)
        {

            sw.WriteLine(Console.ReadLine());
            licznik1--;
        }
        sw.Close();

        Console.WriteLine("Dane zostały zapisane do pliku tekstowego!!! Sprawdz!!!");
    }

    static void Main()
    {

        Console.Write("Program sam wczytuje linijka po linijce liczby z pliku ciagiin.txt \ni zaspisuje sumy kontrolne do pliku out.txt!!!\n\n");
        Console.ReadKey();

        MojaKlasa obiekt = new MojaKlasa();
        Console.WriteLine();
        obiekt.Odczyt();

        Console.WriteLine();
        obiekt.Zapis();
        Console.ReadKey();
    }
}

}

0

Uzyj metody String.Split(), bedzie duzo latwiej.

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