Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [C++] Problemi stringhe
Forum - C/C++ - [C++] Problemi stringhe

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 22:55
Venerdì, 02/10/2009
Ciao a tutti sto sviluppando un gioco con le librerie allegro e ho delle difficoltà ad effettuare operazioni con le stringhe, ma non riesco a capire xkè non funzionino.

Codice sorgente - presumibilmente C#

  1. #include<iostream>
  2. #include <string>
  3. #include<allegro.h>
  4. using namespace std;
  5.  
  6. string stato_campo[8];
  7. string utente[8];
  8.  
  9. void azzera_campi() {
  10.         for(int i = 0; i < 8; ++i) {
  11.                 utente[i] = "Nessuno";
  12.                 stato_campo[i] = "False";
  13.         }
  14. }
  15.  
  16.  
  17. int main() {
  18.       azzera_campi();   // Al richiamo di questa funzione mi crasha il programma...
  19. }



Non capisco xkè al richiamo della funzione azzera_campi() il programma crashi

edit:

ho risolto il problema... stranamente appena ho riavviato il pc tutto ha funzionato perfettamente 8-|

Ultima modifica effettuata da oretovalley il 02/10/2009 alle 22:58
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 23:01
Venerdì, 02/10/2009
mah... a me il programma va perfettamente 8-|

PM Quote
Avatar
oretovalley (Normal User)
Pro


Messaggi: 109
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 23:20
Venerdì, 02/10/2009
Testo quotato

Postato originariamente da lumo:

mah... a me il programma va perfettamente 8-|



appunto stavo chiedendo, ma al riavvio del pc improvvisamente il dev nn è crashato più...
boh :-|

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 9:38
Sabato, 03/10/2009
Non e' importante ai fini del funzionamento ma se usi

stato_campo = "false";

forse non hai bisogno di un vettore di stringhe ma di boolean.


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 16:53
Sabato, 03/10/2009
Testo quotato

Postato originariamente da theprogrammer:

Non e' importante ai fini del funzionamento ma se usi

stato_campo = "false";

forse non hai bisogno di un vettore di stringhe ma di boolean.



no, probabilmente a lui gli serve che gli elementi dell'array contengano "false" per eventuali controlli fatti dopo.
ad esempio se vuole stampare gli utenti e lo stato campo salterà tutti quelli contenenti false

se ho indovinato ti consiglio di cambiare quel false e quel nessuno a "0" (inteso come testo) e poi mettere un controllo nel numero dei caratteri ad esempio:
Codice sorgente - presumibilmente C/C++

  1. (pseudo codifica tanto per capirci)
  2. per (i=0 A dimensione, con incremento di i)
  3. mentre (1)
  4. {
  5. immetti utente[i]
  6. se caratteri(utente[i]>3)    // un ipotetica funzione che restituisce i caratteri
  7.     {
  8.     scrivi "Utente buono"
  9.     break
  10.     }
  11. altrimenti
  12.     scrivi " il nome utente non è valido, deve avere almeno 3 valori"
  13. }



mi dirai: perchè tutto questo?
io ora non so chi è che deve usare questo programma ma fai finta che qualcuno inserisce false e per un eventualità buffa sia il suo vero cognome, il controllo lo salta e verrà evitato e cosi otterrai risultati sballati
immagina in un software di una compagnia aerea, un software del genere e vedere il signor false fuori dal volo che aveva pagato... lol


char segreto[100]={"Abaca da cala da ciaccia"};
for(int i=0;i<100;i++)
  {
  if(segreto[ i ]=='a'||segreto[ i ]=='A')
    {
    segreto[ i ]='u';
    }
  }
cout<<segreto;
system("pause");
return EXIT_SUCCESS;
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 17:40
Sabato, 03/10/2009
Testo quotato

Postato originariamente da NickoMaiden:

... forse non hai bisogno di un vettore di stringhe ma di boolean.



Scusa, ma hai letto con attenzione quello che gli ho scritto?


Ultima modifica effettuata da theprogrammer il 03/10/2009 alle 17:40


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 21:18
Sabato, 03/10/2009
Testo quotato

Postato originariamente da theprogrammer:

Testo quotato

Postato originariamente da NickoMaiden:

... forse non hai bisogno di un vettore di stringhe ma di boolean.



Scusa, ma hai letto con attenzione quello che gli ho scritto?




il quote che mi hai messo è del tuo quote lol
quello che dico io è che non ha bisogno di vettori di booleani ma è giusto che continui ad usare i vettori di stringa


char segreto[100]={"Abaca da cala da ciaccia"};
for(int i=0;i<100;i++)
  {
  if(segreto[ i ]=='a'||segreto[ i ]=='A')
    {
    segreto[ i ]='u';
    }
  }
cout<<segreto;
system("pause");
return EXIT_SUCCESS;
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 21:33
Sabato, 03/10/2009
Testo quotato

Postato originariamente da NickoMaiden:
quello che dico io è che non ha bisogno di vettori di booleani ma è giusto che continui ad usare i vettori di stringa



E quello che ti (ri)dico io e' che i vettori sono due, tutti e due di tipo stringa.
Il PRIMO puo' continuare ad essere di tipo stringa, ma il SECONDO dovrebbe essere di tipo bool ...

Mi sono spiegato?


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
NickoMaiden (Normal User)
Pro


Messaggi: 115
Iscritto: 10/06/2009

Segnala al moderatore
Postato alle 21:59
Sabato, 03/10/2009
Testo quotato

Postato originariamente da theprogrammer:

Testo quotato

Postato originariamente da NickoMaiden:
quello che dico io è che non ha bisogno di vettori di booleani ma è giusto che continui ad usare i vettori di stringa



E quello che ti (ri)dico io e' che i vettori sono due, tutti e due di tipo stringa.
Il PRIMO puo' continuare ad essere di tipo stringa, ma il SECONDO dovrebbe essere di tipo bool ...

Mi sono spiegato?




si ti sei spiegato, ho capito quello che vuoi dire, però in questo topic non andreamo mai daccordo:rofl:
fai finta che nel vettore stato_campo vuole inserire questi valori (a me ha dato l'impressione di voler intendere una cosa del genere):
false        per indicare che non ha stato
inattivo     tanto per fare un esempio dei possibili stati
attivo       idem


quindi il bool non andrebbe bene



IN OGNI CASO
secondo me non dobbiamo soffermarci troppo su questo, il problema sta nel capire perchè crasha, tutte le altre cose sono sottigliezze...

respect:k:


char segreto[100]={"Abaca da cala da ciaccia"};
for(int i=0;i<100;i++)
  {
  if(segreto[ i ]=='a'||segreto[ i ]=='A')
    {
    segreto[ i ]='u';
    }
  }
cout<<segreto;
system("pause");
return EXIT_SUCCESS;
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo