Operacje na wyrazach - string

Operacje na wyrazach - string
P9
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam

Mam taką pracę domową i nie wiem jak ją zrobić, szukałem na internecie jakiejś wskazówki czy coś i nic nie znalazłem, pomożecie mi może ? :)

a)Wypisz na ekranie informacje, ile w pliku znajduje sie slow skladajacych sie z wiecej niz 5 znakow. Nastepnie przepisz te slowa do pliku o nazwie wieksze.txt kazde w osobnej linijce.

b)Wypisz na ekranie wyraz, ktory powstanie z ostatnich liter kazdego slowa.

Kopiuj
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

main(){
       ifstream wejscie("hasla.txt");
       ofstream wyj4a("wynik4a.txt");
       ofstream wyj4b("wynik4b.txt");
       
       string n;
       int slowo;
       
       while (!wejscie.eof())
       {
          wejscie>>n;	
          if (n.length()>=5) slowo++;
       }
       
       wyj4a<<"Liczba slow, ktore maja wiecej niz 5 znakow: "<<slowo;
       
       wejscie.close();
           
       wyj4a.close();
       wyj4b.close();

       system("PAUSE");
       }
BE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Odczytuj wyrazy z pliku i jeśli natrafisz na dłuższy niż 5 znaków, zwiękaszaj licznik (już to robisz) i zapisz go do pliku wyjściowego. Do wcześniej zaalokowanego stringa doklejaj przy każdym obrocie pętli ostatnią literę odczytanego wyrazu. Na końcu wypisz wartość licznika oraz zawartość zaalokowanego stringa.

To Ci wydatnie pomoże: http://www.cplusplus.com/reference/string/string/

robcio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Opole
  • Postów: 533
0

Policzyć ile wyrazów powyżej 5 znaków znajduje się w pliku można tak

Kopiuj
 
std::ofstream plik("wyrazy.txt");
std::ostream_iterator<std::string> itplik(plik);
std::ostream_iterator<std::string> eos;
std::vector<std::string> wyrazy(itplik, eos);
int count = (int)std::count_if(wyrazy.begin(),wyraz.end(),[](std::string s)->bool {return s.length() > 5;});

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.