7 Esercizi intermedi C++ su funzioni, array, matrici e stringhe

7 Esercizi intermedi C++ su funzioni, array, matrici e stringhe

Ecco un elenco di esercizi su funzioni, array, matrici e stringhe, dedicato per chi sta studiando C++ e vuole iniziare ad affrontare problemi piú complessi di quelli che si trovano spesso online (che sono quasi sempre copia di esercizi di altri siti).

1 - Mappe e altitudini

Ci é stato fornito una mappa delle altezze del suolo di una porzione di Marte di lato 20 metri. La risoluzione… vedi tutto

2 - Visita Marte

Su Marte, la sonda Curiosity ha una posizione…vai a Visita Marte

3 - Macchina quasi di turing

Creare un simulatore per una macchina quasituring. La macchina ha una memoria…vai a Macchina quasi di turing

4 - Inversione parole in una stringa

manipoliamo una stringa invertendo le parole che la compongono.

Data in input una stringa (letta con la funzione std::getline()) contenente una serie di parole separate da uno spazio, scrivere una funzione che restituisca una stringa contenente la stessa serie di parole ma con le parole in ordine inverso.

Soluzione

Per la soluzione utilizziamo un vettore di stringhe e andiamo ad inserire le varie parole all’inizio del vettore, in modo tale da averle poi giá in ordine inverso.

#include <iostream>
#include <string>
#include <vector>

std::string inverti_parole(const std::string&);

int main() {
  std::string s;

  std::cout << "s = ";
  //std::cin >> s;
  std::getline(std::cin,s);
  auto stringa_invertita = inverti_parole(s);
  //s = inverti_parole(s);
  std::cout << stringa_invertita << "\n";
  
  std::cout << "\nbye.\n";
}

std::vector<std::string> get_parole(const std::string& str) {
  std::vector<std::string> p;
  std::string parola;
  for(auto i = 0; i < str.size(); i++) {
    if(str[i] == ' ' ) {
      //p.push_back(parola); // aggiungo la parola al vettore;
      p.insert(p.begin(),parola);
      parola.clear();
    } else {
      parola.push_back(str[i]);
    }
  }
p.insert(p.begin(),parola);
  return p;
}

std::string inverti_parole(const std::string& str){
  std::vector<std::string> parole = get_parole(str);

  for(auto parola:parole) {
    std::cout << parola << "\n";
  }

  std::string out;
  for(auto i = 0; i< parole.size(); i++) {
    out += parole[i];
    if (i != parole.size() -1) {
      out += " ";
    }
  }
  
  // spezzare la stringa
  return out;
}

5 - Titolizzazione di una stringa

Data in input una stringa (letta con la funzione std::getline()) contenente una serie di parole separate da uno spazio, restituire tutte le parole con solo il primo carattere maiuscolo e tutto il resto minuscolo.

6 - Conversione stringa da binario a esadecimale

Assegnata una stringa contenente un numero binario (es. 10101), restituire la rappresentazione esadecimale della stessa.

7 - Conversione stringa da binario a decimale

Assenata una stringa contenente un numero binario (es. 10101), restituire la rappresentazione decimale della stessa.

Related Posts

descriptive text

7 Esercizi sui file in C++

## Esercizio 1: Scrivi un programma C++ che crei un file di testo vuoto chiamato "dati.txt".## Esercizio 2: Scrivi un programma C++ che apra un file di testo chiamato "dati.txt" in modalità scritt

Leggi
descriptive text

7 Esercizi sulle struct in C++

Ecco un elenco di esercizi sulle strutture con l'utilizzo delle `struct`, dedicato per chi sta studiando `C++` e vuole iniziare ad affrontare problemi piú complessi di quelli che si trovano spesso o

Leggi
descriptive text

Esercizi in C++ sulle struct [parte 1]

## Esercizio 1Definire una struct chiamata "Persona" che rappresenti una persona con i seguenti campi: nome, cognome, età e indirizzo. Scrivere una funzione per stampare i dettagli di una persona.

Leggi
descriptive text

Esercizio C++ | Mappe e altitudini

Ci é stato fornito una mappa delle altezze del suolo di una porzione di Marte di lato 20 metri. La risoluzione con cui è stata salvata è di 1 metro (abbiamo un valore per ogni metro quadrato di supe

Leggi
descriptive text

Esercizio C++ | Macchina quasi Turing

Creare un simulatore per una macchina quasituring. La macchina ha una memoria di una sola cella, contenente un intero. La macchina quasituring è composta da una serie di operazioni che si eseguono s

Leggi
descriptive text

Esercizio C++ | Visita di Marte

Su Marte, la sonda [Curiosity](https://mars.nasa.gov/msl/home/) ha una posizione iniziale (0,0). Data una porzione di territorio di lato 20 metri, come nel problema [mappe e altitudini](/esercizio-c

Leggi
descriptive text

Corso completo di Svelte.js: Costruisci applicazioni web reattive e dinamiche

Rust è un linguaggio di programmazione moderno, sicuro e veloce. È stato creato nel 2010 da Mozilla e da allora è stato adottato da una crescente comunità di sviluppatori. Rust è adatto per una varie

Leggi
descriptive text

Esplorando l'incredibile mondo della simulazione del Physarum

Cari appassionati di simulazioni e biologia computazionale, oggi vi porterò alla scoperta di un'affascinante simulazione: il Physarum polycephalum. Questo organismo unicellulare, noto anche come "Muf

Leggi
descriptive text

Esercizi sui sistemi distribuiti

## Esercizio 1: Progettazione di un'architettura distribuitaScenario: Immaginate di dover progettare un sistema distribuito per una piattaforma di e-commerce che supporta un grande numero di utenti

Leggi