Newsgroup: it.comp.lang.c++
Titolo: strcmp

Sarą stupido ma chiedo conferma su strcmp.
int i=strcmp(stringa1,stringa2);
il confronto viene fatto in ordine alfabetico no?
Grazie
--
----------------------------------------
Carlo Camarda
chiamac...@tiscalinet.it
]@#[ Anna I Love You ]#@[

 il confronto viene fatto in ordine alfabetico no?
Eh??????
-- 
Luc.

 il confronto viene fatto in ordine alfabetico no?
naturalmente si. Il confronto è in ordine Ascii. Però attento, che se ci
sono maiuscole e minuscole accadono cose strane apparentemente.
Per esempio Zorro viene prima di ape! Questo perché le maiuscole vengono
prima delle minuscole.
Se hai questo problema dovresti prima convertire (per esempio) tutto in
minuscolo e poi riprovare.

 ha scritto nel messaggio
news:abgpev$5gv$1...@dante.italia.com...


 Ciao
E se non quoti meglio ti URLO io.
--
Ciao
Gaetano
--
#exclude <windows>
#include <CSRSS>
printf("\t\t\b\b\b\b\b\b");.
printf("\t\t\b\b\b\b\b\b");

 ha scritto nel messaggio
news:abiql1$7nr$1...@newsreader.mailgate.org...

Ragazzi scusate perkè quoto sempre sopra e non sotto ma outlook express lo
fa di default...
Anzi non è che per caso sapete come impostare la quotatura sotto in default
ad OE se ciò si può fare?
Grazie


ad OE se ciň si puň fare?
mi sa che fai prima a cambiare newsreader :)
--
Lawrence Oluyede
rhy...@myself.com

 Grazie
ma non esiste anche stricmp che non è case sensitive?
Cereal

ad OE se ciò si può fare?
Se usi OE da solo il cursore è sempre all'inizio, alcuni plug-in lo
spostano alla fine ma neanche questa è la posizione giusta, infatti
devi riportare una parte del messaggio a cui stai rispondendo e poi
scrivi la tua risposta, poi un altro pezzo di messaggio e la tua
risposta e così via.
Il gruppo più corretto per parlare di come quotare è
it.cultura.cybersocieta, invece per sapere come configurare OE
correttamente è it.compsoftware.newsreader.
-- 
Marco Barisione (ICQ 84277092)

 Cereal
No, però esiste strcasecmp che fa il confronto case insensitive.

 writes:

Ne' l'una ne' l'altra sono standard.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy          loreti at pd dot infn dot it

 No, però esiste strcasecmp che fa il confronto case insensitive.
E questa funzione dove l'hai trovata, Mr. Standard?
-- 
Luc.


Programmo principalmente su Unix, e la funzione è nello standard UNIX 98.
E' molto facile implementarla, ne riporto un esempio:
    #define charcmp(a,b) ((a) == (b) ? 0 : ((a) > (b) ? 1 : -1))
    int strcasecmp(unsigned char *s1, unsigned char *s2)
    {
        unsigned char c1, c2;
        for ( ; ; )
        {
           if (*s1 == '\0' || *s2 == '\0')
                return charcmp(*s1,*s2);
            c1= tolower(*s1);
            c2= tolower(*s2);
            if (c1 != c2)
                return charcmp(c1,c2);
            s1++;
            s2++;
        }
    }
    #undef charcmp

     #undef charcmp
Primo: gli identifiers che iniziano con "str" sono riservati e non
possono essere usati.  Secondo: se alla prima linea di codice e' gia'
definito un simbolo "charcmp" per il preprocessore, cosa succede?
Terzo: questo codice (tolower) e' tipico del locale ANSI.  Come la
mettiamo con le lettere accentate?  O con un simbolo lowercase come ß
(es-zet), che in uppercase diventa "SS" (due lettere invece di una)?
Visto che qui si parla di C++, sarebbe meglio usare i locales.  Lo
Josuttis dedica parecchie pagine al problema, e dice che e' in pratica
irrisolvibile :-)


 mettiamo con le lettere accentate?  O con un simbolo lowercase come ß
La specifica unix 98 parla chiaro: il confronto si basa sul locale Posix,
con altri locale i risultati sono non specificati. Infatti il problema in
generale come dici tu è di difficile soluzione.