Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [c]Implementare una funzione per confrontare due stringhe

    Salve, avrei bisogno di un aiuto per implementare una funzione simile alla strcmp, proprio perché mi è stato detto di non utilizzare quest'ultima.
    Potreste darmi qualche suggerimento? lo scopo è sempre quello di confrontare due stringhe e dire se la prima è minore, maggiore o uguale della seconda.
    Grazie.

  2. #2
    Scorri entrambe le stringhe in parallelo fino a quando non trovi un carattere che differisce (o la fine di entrambe le stringhe); nel momento in cui hai trovato la posizione in cui iniziano a differire il risultato del confronto tra le due stringhe è determinato dal confronto dei due caratteri a questa posizione.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Originariamente inviato da MItaly
    Scorri entrambe le stringhe in parallelo fino a quando non trovi un carattere che differisce (o la fine di entrambe le stringhe); nel momento in cui hai trovato la posizione in cui iniziano a differire il risultato del confronto tra le due stringhe è determinato dal confronto dei due caratteri a questa posizione.
    Butto giù un idea:
    char a[max], b[max];
    int i;
    int ris;
    i=0;
    ris=0;

    while(ris==0 and a[i]!='\0' and b[i]!='\0'){
    if(a[i]>b[i]){
    ris=1;
    }
    else{
    if(a[i]<b[i]){
    ris=-1;
    }
    i++;
    }

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dai un'occhiata al codice della strcmp

    http://research.microsoft.com/en-us/...t/strcmp.c.htm
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    GOOGLE CODE per queste cose è molto comodo!

    il primo risultato che ho trovato !
    codice:
    int   my_strcmp(char *str1, char* str2) 
     {  
      int   pt_str; 
      pt_str = 0;   
     while (str1[pt_str] != '\0')   
       {  if (str1[pt_str] != str2[pt_str]) 
                   return (str1[pt_str] - str2[pt_str]);    
        pt_str += 1;   
       } 
       return (str1[pt_str] - str2[pt_str]);  }
    Se cerchi bene in rete , esistono numerosi esempi ,anche di più facile comprensione.
    Tecnologia

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.