Stringhe ANSI C
salve a tutti ragazzi ho un piccolo problema con le stringhe in linguaggio ANSI C:
Vorrei confrontare delle stringhe in questo modo:
switch(3d)
printf("\nciao pippo\n");
switch(10c)
printf("\nciao papà\n")
e così via...
come posso fare???....
Vorrei confrontare delle stringhe in questo modo:
switch(3d)
printf("\nciao pippo\n");
switch(10c)
printf("\nciao papà\n")
e così via...
come posso fare???....
Risposte
Cosa sono "3d" e "10c"?
già...scusami sono delle stringhe....
quello che intendo dire sostanzialmente è questo:
if(stringa acquisita == d1)
scrivi
ciao pippo
come posso tradurlo in ANSI C...??
if(stringa acquisita == d1)
scrivi
ciao pippo
come posso tradurlo in ANSI C...??
Bè devi utilizzare la funzione:
ad esempio:
int strcmp ( const char * str1, const char * str2 );
ad esempio:
switch(strcmp(stringa1, stringa2)) { case 0: { printf("Stringhe uguali\n"); break; } case 1: { printf("Strimghe diverse\n"); break; } }
un attimo forse non mi sono spiegato bene...allora io non avrò mai due stringhe di nome d1...
ti faccio un esempio pratico...per capire
se tu butti il 2 di denari
io butterò il 3 a denari, qualora esistesse,
cioè devo far corrispondere ad oni carta(giusto per intenderci) una serie i istruzioni....
ma le carte come sai non si ripetono sono 40.
Oddio spero di essere stato chiaro....ciao e comunque grazie....
ti faccio un esempio pratico...per capire
se tu butti il 2 di denari
io butterò il 3 a denari, qualora esistesse,
cioè devo far corrispondere ad oni carta(giusto per intenderci) una serie i istruzioni....
ma le carte come sai non si ripetono sono 40.
Oddio spero di essere stato chiaro....ciao e comunque grazie....
Mmmm no...
dovresti spiegarmi meglio perchè proprio non ho capito, nemmeno ciò che devi fare...
dovresti spiegarmi meglio perchè proprio non ho capito, nemmeno ciò che devi fare...
immagina le 40carte...hai mai giocato a scopa???...credo di si...
allora immagina due giocatori
io e il pc
Supponiamo che possiamo prendere solo carte dello stesso palo (mazze con mazze, spade con spade...)
Le mie carte sono
5 a denari, 2 a coppe, 3 a spade
Le carte del pc sono
6 a denari, 5 a coppe, 8 di mazze
Butto io per primo....facciamo 5 a denari
a questo punto il pc deve buttare, tra le carte in mano, il 6 a denari, poichè è l'unica carta che supera il cinque a denari (lo stesso palo)...
in caso contrario, cioè non ho carte a denari, butta la carta più bassa...
Più chiaro di così non so come fare...è un giochino del genere....
cmq grazie per l'interessamnto
allora immagina due giocatori
io e il pc
Supponiamo che possiamo prendere solo carte dello stesso palo (mazze con mazze, spade con spade...)
Le mie carte sono
5 a denari, 2 a coppe, 3 a spade
Le carte del pc sono
6 a denari, 5 a coppe, 8 di mazze
Butto io per primo....facciamo 5 a denari
a questo punto il pc deve buttare, tra le carte in mano, il 6 a denari, poichè è l'unica carta che supera il cinque a denari (lo stesso palo)...
in caso contrario, cioè non ho carte a denari, butta la carta più bassa...
Più chiaro di così non so come fare...è un giochino del genere....
cmq grazie per l'interessamnto
Quindi diciamo che tu scegli una delle tue tre stringhe, vuoi che il programma compari questa stringa con le sue 3 o con tutte quelle possibili ed in base all'uguaglianza che trova si comporterà in un certo modo...
E' corretto?
E' corretto?
esatto...però le deve comparare solo con le tre carte che ha "in mano"...
Non vorrei dire stupidaggini perchè non conosco bene il gioco, forse conviene creare una tua struttura, chiamiamola carta, in cui memorizzi il segno ed il numero.
Da quello che ho capito, una carta con segno maggiore di un altra non è detto che la batta per via del segno...
Con una struttura di questo tipo, penso, tu possa confrontare agevolmente le carte...
Avrai ad esempio che il tuo "5 a denari" ed il "6 a denari" del programma saranno cosi memorizzato:
E se sopra non ho scritto stupidaggini riguardo al funzionamento del gioco, dovrai effettuare controlli sia sul segno che sul numero...
Da quello che ho capito, una carta con segno maggiore di un altra non è detto che la batta per via del segno...
Con una struttura di questo tipo, penso, tu possa confrontare agevolmente le carte...
Avrai ad esempio che il tuo "5 a denari" ed il "6 a denari" del programma saranno cosi memorizzato:
cartaTua1.segno = "denari"; /*Sarà una stringa cartaTua1.numero = 5; /*Sarà un intero cartaPro1.segno = "denari"; cartaPro1.numero = 6;
E se sopra non ho scritto stupidaggini riguardo al funzionamento del gioco, dovrai effettuare controlli sia sul segno che sul numero...
creo una struttura
typedef struct {
char segno[4] = {"d", "c", "s", "b"};
int numero <= 10;
}
Acquisisco con un ciclo for intero e stringa
e poi comparo ciò che ho acquisito assegnando le eventuali istruzioni....con una istruzione if()....
forse ci siamo...proverò stasera...ti farò sapere ok..?...per il momento grazie....
typedef struct {
char segno[4] = {"d", "c", "s", "b"};
int numero <= 10;
}
Acquisisco con un ciclo for intero e stringa
e poi comparo ciò che ho acquisito assegnando le eventuali istruzioni....con una istruzione if()....
forse ci siamo...proverò stasera...ti farò sapere ok..?...per il momento grazie....
Cosi intendo, questa sarà la tua struttura della carta:
Poi penso ci sarà un ciclo in cui tu peschi a random delle carte e lo stesso farà il pc, all'interno di questo ciclo assegnerai alla tua carta1 il segno ed il numero usciti, e cosi via per le varie carte.
Una volta finito il "pescaggio" passi all'algoritmo di controllo del programma, assegnerai i punti e pescherai un altra cata, se si gioca cosi...
Non essendo esperto di questo tipo di giochi, magari esistono approcci migliori che altri ti consiglieranno!
Comunque sia prova e vediamo!
Ciao!
typedef struct { char* segno; int numero; } carta;
Poi penso ci sarà un ciclo in cui tu peschi a random delle carte e lo stesso farà il pc, all'interno di questo ciclo assegnerai alla tua carta1 il segno ed il numero usciti, e cosi via per le varie carte.
Una volta finito il "pescaggio" passi all'algoritmo di controllo del programma, assegnerai i punti e pescherai un altra cata, se si gioca cosi...

Non essendo esperto di questo tipo di giochi, magari esistono approcci migliori che altri ti consiglieranno!
Comunque sia prova e vediamo!
Ciao!
forse non sarai bravo con le carte ma sei davvero eccellente a capirmi...complimenti grazi tante...ti farò sapere e a fine programma ti farai una partita anche te...
...ciao e grazie ancora.......



enigmagame...lo spunto che mi hai dato è andato a buon fine...volevo ringranziarti...ciao

Bene, mi fa piacere...
Ciao!
Ciao!