dunque... io recupero i dati così:
char mex2[2000];
recverr = recv(client,mex2,2000,0);
poi il controllo if (mex2 == "start") nn funziona mai... come mai???
grazie mille![]()
dunque... io recupero i dati così:
char mex2[2000];
recverr = recv(client,mex2,2000,0);
poi il controllo if (mex2 == "start") nn funziona mai... come mai???
grazie mille![]()
Questo messaggio è una risposta a una discussione esistente, o si tratta di una nuova discussione? Manca il linguaggio.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
no è una nuova domanda!!!ops... scusa!!! mi sono dimenticato, è in c++
ho provato anche a fare un programma del genere:
char prova[100] = "prova";
char prov[100] = "prova";
if (prova == prov){ printf("yesssss"); }else{ printf("no!"); }
xche cacchio nn va???![]()
![]()
![]()
xche nn vede uguali prova e porv???
![]()
Non va perche' tu non hai ben capito come funziona il confronto in C.
Per confrontare un "array di char" (una stringa e' un array ...) devi fare il confronto di tutti i caratteri, uno per uno.
L'operatore == non effettua tale operazione, anzi, come lo hai scritto, lavora solo sul "puntatore" alla stringa (ovvero confronta i due puntatori ...).
Per fare il confronto devi usare l'apposita funzione di libreria
strcmp
Leggi nell'help come fare.
non fuziona perche ti stai chiedendo
[U]if (prova == prov){ printf("yesssss"); }else{ printf("no!"); }
se prova punta allo stesso carattere a cui punta prov
In C le stringhe sono degli array di carattere e la variabile "prova" non contiene caratteri ma è un puntatore alla zona di memoria (contenente un char) che contiene il primo carattere usando un indice andrai a trovare gli altri caratteri; es prova[2]='o'
Quindi il tuo problema può essere risolto solo con una funzione dedicata come la strcmp
int strcmp(char *stringa1,char *stringa2);
questa funzione torna 0 se le stringhe sono uguali altrimenti diverso da 0.
if(strcmp(prova,prov)==0)
printf("yes");
else
printf("no");
spero di essere stato chiaro![]()
ciao
![]()
Originariamente inviato da oregon
Non va perche' tu non hai ben capito come funziona il confronto in C.
Per confrontare un "array di char" (una stringa e' un array ...) devi fare il confronto di tutti i caratteri, uno per uno.
L'operatore == non effettua tale operazione, anzi, come lo hai scritto, lavora solo sul "puntatore" alla stringa (ovvero confronta i due puntatori ...).
Per fare il confronto devi usare l'apposita funzione di libreria
strcmp
Leggi nell'help come fare.chiarissimi!!!! grazie!!!!Originariamente inviato da GabbOne
non fuziona perche ti stai chiedendo
[U]if (prova == prov){ printf("yesssss"); }else{ printf("no!"); }
se prova punta allo stesso carattere a cui punta prov
In C le stringhe sono degli array di carattere e la variabile "prova" non contiene caratteri ma è un puntatore alla zona di memoria (contenente un char) che contiene il primo carattere usando un indice andrai a trovare gli altri caratteri; es prova[2]='o'
Quindi il tuo problema può essere risolto solo con una funzione dedicata come la strcmp
int strcmp(char *stringa1,char *stringa2);
questa funzione torna 0 se le stringhe sono uguali altrimenti diverso da 0.
if(strcmp(prova,prov)==0)
printf("yes");
else
printf("no");
spero di essere stato chiaro![]()
ciao
![]()
![]()
ciao ragazzi perchè quando compilo questo programma, la finestra scompare?
#include<stdio.h>
main()
{
const char car1='G',car2='P';
char a;
printf("inserisci lettera\n");
a=getchar();
while(getchar()!='\n')
if(a==car1)
printf("il nome e' giuseppe");
else
if(a==car2)
printf("il nome e' paolo");
else
printf("il nome e' sbagliato");
getchar();
return 0;
}
Puoi provare ad inserire prima del return l'istruzione
system("PAUSE");
Per chiarezza ti faccio vedere come avviene la comparazione delle stringhe
Come puoi vedere effettua il controllo per ogni singolo caratterecodice:int strcmp(const char *Src, const char *Dest) [ int i; for( i = 0, i < strlen(Src),i++) [ if (Src[i] =! Dest[i]) return 1; ] return 0; ]
"Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)
"Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)
http://xvincentx.netsons.org/programBlog