DOMANDA Stringhe C++

Stato
Discussione chiusa ad ulteriori risposte.

MPG

Utente Attivo
473
2
Scusate abbiamo introdotto le stringhe molto velocemente e per casa avrei questi 4 esercizi.

a)Prende una stringa come parametro e scambia la prima metà con la seconda;
b)Riceve due stringhe come parametri e restituisce true se sono uguali, false altrimenti;
c)Riceve una stringa come parametro e, se essa ha lunghezza >=2, scambia il primo carattere con l'ultimo e stampa la stringa, altrimenti non fa nulla;
d)Prende come parametro una stringa ed un carattere e restituisce il numero di occorrenze del carattere nella stringa.

Ora vedo che chi di solito risponde capisce enormemente piu' di me e poichè ho appena preso un'insufficenza e questa materia per me ostica vi prego se qualcuno puo' spiegarmi in maniera semplice come funzionano le stringhe e puo' aiutarmi nello svolgimento di questi esercizi.
Vi ringrazio come sempre.
 
Ultima modifica:

BAT

Moderatore
Staff Forum
Utente Èlite
5,777
2,471
CPU
Neurone solitario
Dissipatore
Ventaglio azionato a mano
Scheda Madre
Casalinga
RAM
Molto molto volatile
GPU
Binoculare integrata nel cranio
PSU
Pastasciutta, pollo e patatine al forno
Net
Segnali di fumo e/o tamburi
OS
Windows 10000 BUG
Un ottimo inizio sarebbe quello di aprire il libro di testo che stai usando per il C++ (ne avrai uno!) e leggere il capitolo sulle stringhe... o no?
Ti devi sforzare: prima studia, prova a fare gli esercizi da solo;
non ci riesci?
allora mettiti in contatto con qualche compagno di classe! diavolo ce ne sarà uno che riesce a farli!
Con tutti i mezzi che avete a disposizione voi giovincelli (mi riferisco agli smartphone) possibile che in classe non puoi chiedere a nessuno? Se usi il forum le risposte saranno molto più lente
 
  • Like
Reactions: _Achille

MPG

Utente Attivo
473
2
Si certo , ma spesso imparo piu' da voi soprattutto se in classe non ci sono delle eccellenze in materia...
 

Mursey

Super Moderatore
Staff Forum
Utente Èlite
5,736
3,421
Scusate abbiamo introdotto le stringhe molto velocemente e per casa avrei questi 4 esercizi.

a)Prende una stringa come parametro e scambia la prima metà con la seconda;
b)Riceve due stringhe come parametri e restituisce true se sono uguali, false altrimenti;
c)Riceve una stringa come parametro e, se essa ha lunghezza >=2, scambia il primo carattere con l'ultimo e stampa la stringa, altrimenti non fa nulla;
d)Prende come parametro una stringa ed un carattere e restituisce il numero di occorrenze del carattere nella stringa.

Ora vedo che chi di solito risponde capisce enormemente piu' di me e poichè ho appena preso un'insufficenza e questa materia per me ostica vi prego se qualcuno puo' spiegarmi in maniera semplice come funzionano le stringhe e puo' aiutarmi nello svolgimento di questi esercizi.
Vi ringrazio come sempre.
Ricordo la regola:
La sezione Programmazione e le sue sottosezioni non offrono un servizio di risoluzione compiti scolastici.
E' possibile chiedere aiuto ma allegando il codice scritto o le prove fatte.
 

MPG

Utente Attivo
473
2
No certo non volevo i compiti fatti, anche in passato poi ho solo ascoltato vostri preziosi suggerimenti e postato codice.
Scusate in caso, provo a farli e poi mi direte se possibile come vanno.
 

pabloski

Utente Èlite
2,686
763
Se non vuoi usare i libri, usa questo http://www.cplusplus.com/reference/string/string/

Alla fin fine si tratta di conoscere quali metodi è possibile utilizzare e cosa fanno. Sull'implementazione delle stringhe, credo che pochi sappiano come C++ gestisce le stringhe sotto il cofano.

Suppongo stiamo parlando di std::string e non delle stringhe char[] come si usano in C.
 

MPG

Utente Attivo
473
2
SCusate ma sto cercando di fare l'esercizio b con qualcosa del genere ma ho paura di brancolare nel buio...

Codice:
bool stringa (const string a0, const string a1)
{   
    if (a0 != a1) }
return false;
}
 

pabloski

Utente Èlite
2,686
763
A parte la parentesi quadra chiusa dopo l'if, il resto va bene. La classe string fa l'overload degli operatori == e != implementandoli, sotto il cofano, tramite il metodo compare. Quindi si può benissimo usare quell'operatore per verificare l'eguaglianza di due stringhe.
 

MPG

Utente Attivo
473
2
Pero' se anche scrivo cosi' non va..
Codice:
#include <iostream>
#include <string>
using namespace std;
int main()
{

bool stringa (const string a0, const string a1)
{
    if (a0 != a1)
return false;
}
}
 

pabloski

Utente Èlite
2,686
763
Ehm perchè diavolo hai definito una funzione all'interno del main? Che poi dove inizializzi le due stringhe? E dove chiami la funzione stringa?

Temo ti manchino le basi del C++.
 

MPG

Utente Attivo
473
2
Lo so che non sono eccelso in questa materia, so le mie mancanze , è ostica per me non so che dire....
In pratica come la correggeresti ?
Ti ringrazio.
ps.
Ho letto le poche pagine della dispensa con la definizione di una stringa che è una sequenza di caratteri, come "Hello" e la spiegazioneche in C++ le stringhe sono racchiuse tra virgolette doppie, che non sono considerate parte della stringa.
Poi l'istruzione getline(cin, nome) che legge tutti i caratteri digitati fino a che si preme INVIO e genera una stringa che contiene tutti i caratteri e che viene memorizzata nella variabile nome.
Poi un facsimile di programma tipo questo sotto.. IO ripeto pero' non riesco a fare gli esercizi dettati (non erano stati presi dal libretto) con queste nozioni... colpa della mia scarsa attitudine sicuramente...

Codice:
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string nome;
cout << "\nInserisci il tuo nome => ";
cin >> nome;
cout << "\nla variabile nome contiene " << nome;
cout << "\n\nFine ";
system ("pause");
return 0;
 
Ultima modifica:

pabloski

Utente Èlite
2,686
763
Direi di dare un'occhiata qui https://www.html.it/guide/guida-c2/

Da quello che ho visto non ti è chiaro proprio come si struttura un programma C++. Ed è quantomeno curioso che si parli di stringhe, quando non si ha idea di come scrivere un programma C++. Non penso che l'insegnante non abbia spiegato queste cose.

Tu lì avevi definito una funzione, ma poi non la chiamavi. L'aveva messa nel main e non ce n'è ragione. Oltretutto non dichiaravi le stringhe nè nel codice, nè tramite input da console ( come invece fa il listato che hai trovato ).
 

MPG

Utente Attivo
473
2
Nel primo esercizio è giusto mettere tipo cosi' o viene scambiato solo il primo e ultimo carattere della stringa e non la prima meta' con la seconda?

Codice:
string stringa (string a)
{
if dim=a.lenght ();
if (dim >=2)
{
int scambio= a[0];
a[0]=a[dim-1];
a[dim-1]=scambio,
}
return a;
 

pabloski

Utente Èlite
2,686
763
if dim=a.lenght (); Che diavolo sarebbe? E' completamente sbagliata la sintassi. Seriamente, hai mai programmato in C/C++?

Per il resto dice di scambiare i primi (N/2)-1 caratteri della stringa con quelli da N/2 a N-1.
 

MPG

Utente Attivo
473
2
Ho scritto sbagliato scusa:

Codice:
string stringa (string a)
{
int dim=a.lenght ();
if (dim >=2)
{
int scambio= a[0];
a[0]=a[dim-1];
a[dim-1]=scambio,
}
return a;

Ok cosi'?
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando

Hot: PS5 VS XBOX X/S?

  • Playstation 5

    Voti: 579 63.8%
  • XBOX Series X/S

    Voti: 329 36.2%

Discussioni Simili