Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841

    controllo il su stringhe nn funziona

    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

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Moderazione

    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...

  3. #3
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    no è una nuova domanda!!! ops... scusa!!! mi sono dimenticato, è in c++

  4. #4
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    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???

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    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.

  6. #6
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    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

  7. #7
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    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.
    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
    chiarissimi!!!! grazie!!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    8

    perchè....

    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;
    }

  9. #9
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    Puoi provare ad inserire prima del return l'istruzione

    system("PAUSE");

  10. #10
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Per chiarezza ti faccio vedere come avviene la comparazione delle stringhe
    codice:
    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;
    ]
    Come puoi vedere effettua il controllo per ogni singolo carattere
    "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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.