tuixte ha scritto:
Inizia a scrivere il codice per prendere in input la matrice e la stringa.
Dopo di chè, di cosa hai bisogno?
Devi controllare ogni elemento della matrice: se esso contiene la stringa str, incrementi di uno un apposito contatore.
Dopo aver controllato tutti la matrice, il tuo contatore ti dirà quante sono le stringhe che soddisfano la tua condizione. Se tale numero è uguale o maggiore al numero di elementi, allora restituisci true; altrimenti, false.
Inizia a ragionarci da solo, prova a scrivere qualcosa, e poi ritorna se hai bisogno
Ciao grazie per la risposta!
Allora sono arrivato fin qui e prima di andare avanti vorrei ottimizzare questo pezzo di codice:
#include <cstdlib>
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
/*
Scrivere un metodo che prenda in input una matrice A di stringhe ed una stringa str, e restituisca un boolean
che indichi se str è sottostringa di almeno metà delle stringhe presenti in una qualche riga di A.
*/
int main()
{
//Prendiamo una stringa in input di nome str
string str,strinp;
cout << "Inserisci una stringa: "; getline(cin,str); cout << endl;
//Prendiamo una matrice A di stringhe in input;
int righe;
cout << "Inserisci il numero di righe: ";
cin >> righe; cout << endl;
int colonne = 0;
cout << "Inserisci il numero di colonne : ";
cin >> colonne; cout << endl;
string A [righe][colonne];
for (int i=0; i<righe; i++)
{
for(int c=0; c<colonne; c++)
{
cout << "Inserisci una stringa: ";
cin >> strinp;
cout << endl;
A[i][c]= strinp;
}
}
cout << "Ecco la tua matrice: \n\n";
for (int i=0; i<righe; i++)
{
for(int c=0; c<colonne; c++)
{
cout << A[i][c] << " ";
}
cout << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Vorrei sapere come incolonnare la tabella e "disegnare" i bordi, con un setw mi viene proprio sballato perchè le stringhe possono avere lunghezza diversa tra di loro...