• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ pomoc z zadaniem

Object Storage Arubacloud
+1 głos
235 wizyt
pytanie zadane 9 grudnia 2020 w C i C++ przez malvator Użytkownik (720 p.)
Witam,

Na co dzień jestem web-developerem (głównie front-end react).

Nauczyciel od zawodowego zlecił zadanie do wykonania, jako że c++ to nie moja bajka (choć podstawy znam)

Nie mam zbytnio czasu aby solidnie przysiąść to tego zadanka.

Czy ktoś z Was szanowni grupowicze mógłby ewentualnie mi pomóc z tym zadankiem. Naprawdę gdybym miał odrobinę czasu to bym to sam na spokojnie zrobił :)

Oto treść zadania:

1) mamy podać zdanie

2) mamy podać dowolną literę i program ma zwrócić ile razy się powtórzyła w zdaniu wyżej

3) program ma zwrócić ile zdanie ma liter, cyfr, słów

Naprawdę z góry dziękuję za wszystkie odpowiedzi i pomoce z Waszej strony :)
komentarz 9 grudnia 2020 przez tkz Nałogowiec (42,000 p.)
Czego konkretnie nie rozumiesz? Chyba, że to zleceni, to podaj ile jesteś w stanie zapłacić.

3 odpowiedzi

+1 głos
odpowiedź 9 grudnia 2020 przez tangarr Mędrzec (154,860 p.)
Jako web developer będziesz umiał zrobić to zadanie w JavaScripcie.
Pokaż działający kod JS a poprowadzimy cię jak przerobić twój kod na C++.
–2 głosów
odpowiedź 9 grudnia 2020 przez TOWaD Mądrala (6,000 p.)
edycja 9 grudnia 2020 przez TOWaD

Regular expressions library - cppreference.com

tu masz zrobione zadanie

A  tu

Wyrażenie regularne (wczytanie z pliku)
[A-ZĆŁŃÓŚŻŹ][\wąęćłńóśżź][(\wąęćłńóśżź){2,}\s]+,[A-ZĆŁŃÓŚŻŹ][\wąęćłńóśżź][(\wąęćłńóśżź){2,}\s-]+,[0-9]{1,3},pesel|[0-9]{11},\w+@\w+[a-zA-z\.]*,[0-9]{2}-[0-9]{3}
dla danych:
Imię drugie Imię ,Nazwisko-Dwuczłonow e -iTrzyczłonowe,23,pesel,mail@com.pl,00-100;

a jeszcze operatory

#include <iostream>
#include "structdef.h"
std::istream & operator >> (std::istream & is, data & record ) {
    std::string trash;
    getline(is,record.fn,record.separator);
    getline(is,record.ln,record.separator);
    is>>record.age;
    getline(is,trash,record.separator);
    is>>record.in;
    getline(is,trash,record.separator);
    getline(is,record.email,record.separator);
    is.getline(record.acode,7,record.endrecord);
    return is;
}
std::ostream & operator << (std::ostream & os, const data & record ) {
    os<<record.fn<<record.separator
      <<record.ln<<record.separator
      <<record.age<<record.separator
      <<record.in<<record.separator
      <<record.email<<record.separator
      <<record.acode<<record.endrecord;
    return os;
}

jako programista na pewno znasz wyrażenia regularne, ale regex

 

komentarz 10 grudnia 2020 przez TOWaD Mądrala (6,000 p.)

Dzięki za głosy uznania, a czego zabrakło liczenie słów standardzie, tylko podmienić wyrażenie regularne na inne

 std::regex word_regex("(\\w+)"); na inne i tyle. Podobno gotowców nie można pisać.
komentarz 10 grudnia 2020 przez TOWaD Mądrala (6,000 p.)
edycja 11 grudnia 2020 przez TOWaD

a tu inny gotowiec c++ naprawdę ma moc, a z regexem to naprawdę można wiele zdziałać 

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    string tags;
    string cssfile{0};
    ifstream ifs("plik.html");
    ofstream ofs ("plik.css",ios_base::app);
    if(ifs.open()){ // edit mała poprawka bo jak by nie poprawna nazwa pliku lub ścieżka;
          while(!ifs.eof()){
            getline(ifs,tags,'"');
            getline(ifs,cssfile,'"');
            ofs<<cssfile<<"{}\n";
            }
       ifs.close(); 
      }
     ofs.close();
    return 0;
}

 

komentarz 10 grudnia 2020 przez tkz Nałogowiec (42,000 p.)
Standardowy regex nawet nie stał obok wydajności.
komentarz 10 grudnia 2020 przez TOWaD Mądrala (6,000 p.)

ale ma to 

This class defines the type of objects thrown as exceptions to report errors from the regular expressions library.

czego printf nie ma 

komentarz 10 grudnia 2020 przez tkz Nałogowiec (42,000 p.)
Niejasno się wyraziłem. Nie neguje wyrażeń regularnych. Ich standardowa implementacja po prostu ssie. C# dotknęło to samo. Biblioteka standardowa jest zrobiona tak, by była jak najbezpieczniejsza(oczywiście względem standardu) i przez to jest cholernie niewydajna.
komentarz 10 grudnia 2020 przez TOWaD Mądrala (6,000 p.)
pewnie do szkolnych i uczelnianych projektów wystarczy, a pewnie profesjonaliści korzystają z dedykowanych programów. Ale to już Ty pewnie lepiej wiesz.

Podobne pytania

0 głosów
1 odpowiedź 200 wizyt
pytanie zadane 12 listopada 2016 w Java przez qwerty Początkujący (380 p.)
0 głosów
3 odpowiedzi 457 wizyt
pytanie zadane 16 marca 2022 w C i C++ przez Daaa22 Dyskutant (8,250 p.)
+1 głos
1 odpowiedź 195 wizyt
pytanie zadane 10 października 2018 w Nasze projekty przez kevin Mądrala (5,010 p.)

92,580 zapytań

141,433 odpowiedzi

319,665 komentarzy

61,965 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...