Stringhe linux

di Anonimizzato19960 il
8 risposte
Ciao ragazzi ho un dobbio
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
    char s[50];
    char s1[50];
    
    
   
        printf("inserisci stringa 1:");
        getchar();
        fgets(s,50,stdin);
        strtok(s,"\n");
        
         printf("inserisci stringa 2:");
        fgets(s1,50,stdin);
        strtok(s1,"\n");
        
        if(strcmp(s,s1)<0){
            printf("la stringa minore e': %s",s);
        }
        
        else if(strcmp(s,s1)==0){
            printf("le stringhe sono uguali");}
        else if(strcmp(s,s1)>0) {
            
             printf("la stringa minore e': %s",s1);
            
            
        }
            
            
        
        }
perche facendo il confronto quando gli dico di stampare la stringa minore mi stampa quella maggiore

8 Risposte

  • Che intendi? Quali stringhe sono maggiori o minori?

    E non parlare di stringhe linux perché le stringhe sono del C non di linux
  • Se io come prima stringa scrivo verde e come seconda stringa scrivo giallo lui mi dice che la stringa minore é giallo nonostante io dico al compilatore di stampare s nel caso s <s1
  • Di nuovo: Linux non centra!
    Leggi la documentazione e vedrai che il comportamento è corretto!
  • Infatti la stringa minore è giallo.

    Peppus ma tu che hai capito della strcmp? Sai cosa fa? Sai cosa significa minore e maggiore per la strcmp?
  • Io scrivendo strcmp (s,s1)>0 so che sta a dire che s>s1 ma pensavo che s era maggiore di s1 in base ai caratteri ! Anche se so che quelli li posso vedere con la strlen
  • Peppus ti avevo già detto di non CONFONDERE strcmp con strlen ma vedo che non hai capito.

    Con la strlen CONTI il numero di caratteri della stringa, con la strcmp controlli l'ORDINE ALFABETICO, ovvero se una stringa viene prima o dopo in ordine alfabetico.

    giallo è < verde perché giallo viene prima in ordine alfabetico.

    Nulla a che vedere con la strlen, OK?
  • Sì perfetto ! Ora ho capito ! Grazie mille !
  • Speriamo bene ... leggi la documentazione delle funzioni prima di usarle!
Devi accedere o registrarti per scrivere nel forum
8 risposte