Ciągi znaków C++

0

Witam, moje zadanie jest następujące:

W pliku dane.txt znajduje się 500 ciągów znaków, każdy ciąg znaków znajduje się w oddzielnym wierszu.

  • Podaj ile jest łącznie znaków we wszystkich ciągach znaków.
  • Podaj ile znaków ma najdłuższy ciąg i w którym jest wierszu.
    -Podaj ile znaków ma najkrótszy wyraz i w którym jest wierszu.
    -Zastąp wszystkie litery a (małe a) znakiem * (gwiazdka)
    -Plik po zmianach zapisz do pliku wyrazy.txt

Nie wiem jak się zabrać za zadania z ciągami, wiem że na pewno muszę użyć funkcji length
Z góry dziękuję za pomoc
To mój następujący kod źródłowy:

#include <iostream>

using namespace std;

int main()
{
    string linia;
    fstream plik;

    plik.open("dane.txt", ios::in);
    if( plik.good() == false )
    {
        cout<<"Nie ma takiego pliku";
    }
    while(getline(plik, linia))
        {
            tekst[i]=linia;
            i++;
        }
        plik.close();
        
    
    
    return 0;
}
0

wiem że na pewno muszę użyć funkcji length

Skoro wiesz na pewno, to dlaczego nigdzie jej nie używasz? Anyway, ten kod i tak się nie skompiluje bo nie masz zdefiniowanej zmiennej tekst ani i.

1

Na zachętę, tak wygląda punkt 2, reszta też jest podobnie prosta:

#include <iostream>
#include <fstream>

using namespace std;

int main(){
    string linia;
    fstream plik;

    plik.open("data.txt", ios::in);
    if( plik.good() == false){
        cout<<"Nie ma takiego pliku";
    }
    size_t maxLength = 0;
    int lineNumber = 0;
    int maxLineNumber = 0;
    while(getline(plik, linia)){
		if (linia.length() >= maxLength) {
			maxLength = linia.length();
			maxLineNumber = lineNumber;
		}
		++lineNumber;
    }
    cout << maxLength << " " << maxLineNumber; // counting from zero
    plik.close();
	cout << "\n";
    return 0;
}

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